为什么文件只能部分上传?

时间:2010-05-30 03:55:11

标签: php error-handling upload file-upload

为什么文件只能部分上传?

我正在改进PHP文件上传脚本中的错误处理,并试图弄清楚如何正确处理UPLOAD_ERR_PARTIAL。

我应该提示用户再次尝试上传文件,还是应该通知他们存在更严重的问题,导致他们无法上传可能合法的文件?

7 个答案:

答案 0 :(得分:24)

当在文件数据之后找不到mime边界时,给出UPLOAD_ERR_PARTIAL。可能的原因是用户取消了上传(按ESC等)。

我认为通知用户文件只是部分上传并且重试可以解决问题就足够了。

答案 1 :(得分:10)

这是一篇旧帖子,但我有一个UPLOAD_ERR_PARTIAL的随机问题,并发布我的解决方案。

问题是2/3上传后我获得了UPLOAD_ERR_PARTIAL的错误,没有客户端中断。

我的问题与Keep-Alive服务器有关。

我通过在PHP脚本末尾插入上传

解决了这个问题
header ("Connection: close");

强制关闭连接。这解决了我的问题。

我希望有人可以提供帮助。

感谢LINK

答案 2 :(得分:6)

  

为什么文件可能只是部分文件   上传?

这通常是由用户取消上传造成的。

  

我应该提示用户尝试   再次上传文件,或者我应该   告诉他们还有更多   严重的问题是预防   他们可能上传一个   合法文件?

你应该提示他们再试一次,如果问题继续与网站所有者联系,包括尽可能详细的信息。

答案 3 :(得分:2)

好吧,文件上传可能会被中断:

  

目的地空间不足

     

连接中断

     

损坏文件

     

错误的名称

     

错误的扩展程序

     

等...

您可以做的最好的事情是在实际将文件发送到服务器之前验证并保护上传过程并进行验证...

我第一次制作文件上传脚本时,我使用了1行代码,现在,相同的脚本看起来像是一个网页;)

EDITED(控制扩展名和文件大小的示例):

  

if((

($file_up["type"] == "image/gif") ||

($file_up["type"] == "image/jpeg") ||

($file_up["type"] == "image/jpg") ||

($file_up["type"] == "image/pjpeg") ||

($file_up["type"] == "image/bmp") ||

($file_up["type"] == "image/tiff") ||

($file_up["type"] == "image/png")) &&

($file_up["size"] < 1050000))

{

    code if all ok...


}

答案 4 :(得分:2)

这可能对某些人有所帮助,但我遇到了同样的问题。 我的解决方案是卸载libapache2-mod-php5filter并将其替换为经典的libapache2-mod-php5

答案 5 :(得分:0)

我有同样的问题并且与包libapache2-mod-php5filter有关,我删除了p和问题结束。 我希望有人可以提供帮助。

答案 6 :(得分:0)

我今天在本地计算机上处​​理ajax文件时遇到了这个问题,直到我意识到(一个小时后)在另一个程序(MS Excel)中打开了相同的文件(CSV)。关闭有问题的程序后,一切恢复正常。

希望有帮助!