PHP:为什么不获取我将插入到数据库中的图像数据


PHP: Why not get the data of the image that I will insert into the database?

我有下一个问题:验证姓名、地址和电子邮件的代码有效,但验证图像的代码不起作用,也不知道为什么会这样。一如既往地打印"选择图像"

我做了一个测试,并设置了一行以使用"print $photo"打印图像的临时名称,但没有打印!

形式.php

<form id="formregister" name="formregister" action="register.php" method="post">
    <input id="name" name="name" type="text"/>
    <input id="address" name="address"  type="text"/>
    <input id="email" name="email" type="email" />
    <input id="photouser" name="imguser" type="file"/>
    <input id="bregister" name="bregister" type="submit" value="Registrer"/>
</form>

注册.php

..............
$name = $_POST['name'];
$address = $_POST['address'];
$email = $_POST['email'];
$photo = $_FILES['imguser']['tmp_name'];
$errors = array();
    if(!isset($photo)) {
        $errors[] = "Select an image";
    } else {
        $fototemp = addslashes(file_get_contents($_FILES['imguser']['tmp_name']));
        $fotoname = addslashes($_FILES['imguser']['name']);
        $fotosize = getimagesize($_FILES['imguser']['tmp_name']);
        if ($fotosize == false) {
            $errors[] = "Invalid format";
        }
    } 
//Code to validate the other fields (name, address, email)
....................

您缺少表单上文件上传的正确enctype。应该是enctype='multipart/form-data'

<form id="formregister" name="formregister" action="register.php" method="post" enctype='multipart/form-data'>

与其直接访问辅助tmp_name键,不如测试是否先设置了辅助键以避免未定义的索引通知:

if (isset($_FILES['imguser']) {
  $photo = $_FILES['imguser']['tmp_name'];
}