【问题标题】:Getting UPLOAD_ERR_PARTIAL when uploading images on localhost在本地主机上上传图像时获取 UPLOAD_ERR_PARTIAL
【发布时间】:2015-08-06 03:43:52
【问题描述】:

我正在制作一个简单的 html 表单来上传图像,然后将其保存在我的本地主机上的目录中。

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" enctype="multipart/form-data" method="post">
<label for="img">Pick a picture</label>
<input id="img" type="file" name="image">
<input type="submit" name="imageProfil" value="Upload the image">
</form>

但是,当我处理图像时,在检查错误时(在 $_FILES['image']['errors'] 中,我收到错误 3,这意味着文件只上传了部分。

此外,每次我上传文件时,在第一次响应后我都没有得到任何响应(向我抛出异常)。我已经完成了所有的错误检查,我确实将 enctype="multipart/form-data" 放在了我的表单上,而我在这里基本上一无所知。

感谢您的宝贵时间。

【问题讨论】:

    标签: php html image forms localhost


    【解决方案1】:

    我也得到了UPLOAD_ERR_PARTIAL 错误,并且变量post_max_sizeupload_max_filesizemax_execution_time 设置正确。然后我尝试上传一个非常小的文件(2 字节),作为suggested by Kirogo,我收到以下警告:

    Warning: move_uploaded_file(files/myfile.txt): failed to open stream: Permission denied [...]
    Warning: move_uploaded_file(): Unable to move '/tmp/phps8Jdwt' to 'files/myfile.txt' [...]
    

    修复服务器上的文件/目录权限后,再次上传。

    【讨论】:

      【解决方案2】:

      您必须在 php.ini 文件中检查您的 PHP 配置。如果您的上传经常被中断,您需要增加最大上传大小或 PHP 脚本超时之前的时间。检查这个变量:

      post_max_size
      upload_max_filesize
      max_execution_time
      

      您可以使用 ini_set 函数增加您的 PHP 配置文件或增加您的脚本。查看手册以获取更多详细信息。 PHP手册

      【讨论】:

      • 刚刚检查了我的 php.ini 文件中的这些变量,它们分别为 8M、2M 和 30[秒],远高于我要上传的图像,即 468kB .我检查了我发送的请求,它确实是 468kB 宽,所以比我的服务器拒绝的要少。
      • 我在互联网上做了一点挖掘,要么是配置,要么是用户取消上传。
      • 嗯,它似乎与我发送的图像的大小有关,因为我尝试使用较小的图像(27kb),并且脚本有效!但是,当文件太大时我应该抛出异常,并且当我发送太大的文件时服务器不应该停止响应!无论如何,感谢您的帮助!
      猜你喜欢
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      相关资源
      最近更新 更多