type=';文件';以POST形式提交


type='file' submits as POST

我有这个html:

<form method="post" action="install.php">
  <input type="text" name="database_username" id="database_username">
  <input type="password" id="database_password" name="database_password">
  <input type="file" class="logo-field" id="logo_field" name="file">
  <input type="submit" class="button success expand">
</form>

我在install.php:中的PHP

if ($_FILES['file']['error'] !== UPLOAD_ERR_OK){
  die("Didn't upload properly. Error: " . $_FILES['file']['error']);
}
$info = getimageSize($_FILES['file']['tmp_name']);
if ($info == FALSE){
  die("Can't get the type of uploaded file.");
}
if (($info[2] !== IMAGE_GIF) && ($info[2] !== IMAGE_JPEG) && ($info[2] !== IMAGE_PNG)){
  die("Not a gif/jpeg/png");
}

但是,它不起作用(根据第一个die()给出一个空白错误)。

当我var_dump($_FILES)时,我得到:

array(0) { }

但当我执行`var_dump($_POST);?>时

array(3) { ["database_username"]=> string(8) "username" ["database_password"]=> string(8) "password" ["file"]=> string(14) "image-name.jpg" }

这只是一种正常的形式,用户可以输入用户名/密码,如果愿意,可以上传ID,但我很难将图像上传到下一页。

尝试访问$_FILES['file']:时出现此错误

Message: Undefined index: file

问:为什么图像上传不起作用?

您缺少

enctype="multipart/form-data" 

形式。

表格应为

<form method="post" action="install.php" enctype="multipart/form-data" >

为什么需要它?检查此处

enctype=';多部分/表单数据';意思是