PHP上传0字节图像

时间:2015-03-18 14:23:58

标签: php upload

当我使用PHP上传图像时,我没有错误,图像在服务器上是0字节。 考虑的事情:

  • phpinfo()
  • 中的File_uploads为On
  • 在phpinfo()
  • 中,Upload_max_filesize为8M
  • 设置了Upload_tmp_dir并具有777个permisions
  • 如果我运行file_exists($ _ FILES [' userfile'] [' tmp_name']),它会返回 真
  • 如果我运行getimagesize($ _ FILES [' userfile'] [' tmp_name']),我会看到 错误通知。图像有效,可以使用系统图像打开 观看者

我使用一个非常简单的上传脚本进行测试:

HTML:

<form enctype="multipart/form-data" action="upload.php" method="POST">
        <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
        Send this file: <input name="userfile" type="file" />
        <input type="submit" value="Send File" />
</form> 

PHP:

<?php

//$uploaddir = '/var/www/html/upload';
$uploaddir = '';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}

echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";

?>

当我提交文件时,我没有错误,图像在目标文件夹中创建,具有正确的名称和扩展名,但正如标题所示,它是0字节(当然,它可以&#39; t被选中)。

感谢您的时间。

修改 Sajad Karuthedath 让我看到$ _FILE [&#39;文件&#39;] [&#39; size&#39;]值为0 !!导致文件无法正确上传的问题是什么?

编辑2 上传txt,pdf,tar文件正常工作..问题仅出在图片类型文件中!

1 个答案:

答案 0 :(得分:0)

尝试这个简单的上传脚本,

您应该在保存到服务器之前检查错误

 if ( 0 < $_FILES['file']['error'] ) {
    echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/'.$_FILES['file']['name']);
      }

注意:在更改phpinfo()之后不要忘记重新启动服务器或xampp

注意:还要更改php中的post_max_size = 25M