首页 文章

PHP上传0字节图像

提问于
浏览
1

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

在phpinfo()中

  • File_uploads为On

  • 在phpinfo()中,Upload_max_filesize为8M

  • Upload_tmp_dir已设置且具有777个permisions

  • 如果我运行file_exists($ _ FILES ['userfile'] ['tmp_name']),则返回true

  • 如果我运行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>";

?>

当我提交文件时,我没有得到任何错误,图像在目标文件夹中创建,具有正确的名称和扩展名,但正如 Headers 所示,它是0字节(当然,它不能被oppened) .

谢谢你的时间 .

EDIT Sajad Karuthedath刚刚让我看到$ _FILE ['file'] ['size']的值是0 !!导致文件无法正确上传的问题是什么?

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

1 回答

  • 0

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

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

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

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

    Note :也在php中更改 post_max_size = 25M

相关问题