为什么文件可能只上传了部分内容?
我正在改进我的PHP文件上传脚本中的错误处理,并尝试找出如何正确处理UPLOAD_ERR_PARTIAL错误。
我应该提示用户再次尝试上传文件,还是告知他们存在更严重的问题,这可能会阻止他们上传可能合法的文件?
为什么文件可能只上传了部分内容?
我正在改进我的PHP文件上传脚本中的错误处理,并尝试找出如何正确处理UPLOAD_ERR_PARTIAL错误。
我应该提示用户再次尝试上传文件,还是告知他们存在更严重的问题,这可能会阻止他们上传可能合法的文件?
上传文件数据后未找到mime边界时,会出现UPLOAD_ERR_PARTIAL。可能的原因是用户取消了上传(按下ESC等)。
我认为只需告知用户文件仅部分上传即可,并建议重新尝试上传以解决问题。
这是一篇旧文章,但我遇到了UPLOAD_ERR_PARTIAL的随机问题,并发布了我的解决方案。
问题在于上传2/3后我收到了UPLOAD_ERR_PARTIAL的错误,而没有任何来自客户端的中断。
我的问题与Keep-Alive服务器有关。
我通过在PHP上传脚本末尾插入解决了这个问题。
header ("Connection: close");
强制关闭连接解决了我的问题。
我希望有人能帮助我。
感谢这个 链接
为什么文件只上传了一部分?
通常是用户取消上传的原因。
我应该提示用户再次尝试上传文件,还是应该告诉他们有更严重的问题阻止他们上传可能合法的文件?
您应该提示他们再次尝试上传,如果问题仍然存在,请联系站点所有者,并尽可能提供详细信息。
.abort()
,那么PHP将如何接收用户取消上传的信息? - tonix好的,文件上传可能会被以下因素中断:
目标空间不足
连接中断
损坏文件
错误名称
错误扩展名
等等...
最好的方法是在实际将文件发送到服务器之前进行验证和保护上传过程...
我第一次制作文件上传脚本时,只用了1行代码,现在,同样的脚本看起来像一个网页 ;)
编辑(控制扩展名和文件大小的示例):
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... }
我有一个相同的问题,与 libapache2-mod-php5filter 包有关,我删除了 p,问题解决了。希望有人能帮忙。