Php 为什么文件只能部分上传?
为什么文件只能部分上传 我正在改进PHP文件上传脚本中的错误处理,并试图找出如何正确处理上传错误 我应该提示用户再次尝试上载该文件,还是应该通知他们存在更严重的问题,阻止他们上载可能合法的文件 为什么一个文件只能被部分删除 上传 这通常是由用户取消上载引起的 我应该提示用户尝试吗 再次上传文件,还是我应该 通知他们有更多的问题 正在预防的严重问题 他们不可能上传一个 合法文件Php 为什么文件只能部分上传?,php,error-handling,upload,file-upload,Php,Error Handling,Upload,File Upload,为什么文件只能部分上传 我正在改进PHP文件上传脚本中的错误处理,并试图找出如何正确处理上传错误 我应该提示用户再次尝试上载该文件,还是应该通知他们存在更严重的问题,阻止他们上载可能合法的文件 为什么一个文件只能被部分删除 上传 这通常是由用户取消上载引起的 我应该提示用户尝试吗 再次上传文件,还是我应该 通知他们有更多的问题 正在预防的严重问题 他们不可能上传一个 合法文件 您应该提示他们再试一次,如果问题仍然存在,请联系网站所有者,包括尽可能多的详细信息。UPLOAD\u ERR\u PAR
您应该提示他们再试一次,如果问题仍然存在,请联系网站所有者,包括尽可能多的详细信息。UPLOAD\u ERR\u PARTIAL在文件数据之后找不到mime边界时给出。造成这种情况的一个可能原因是用户取消了上载(按ESC等)
我认为通知用户文件只上载了一部分就足够了,重试可以解决问题。那么,文件上载可能会因以下原因而中断: 目的地空间不足 连接中断 损坏文件 错误的名字 错误的分机 等等 您所能做的最好的事情是在实际将文件发送到服务器之前,使用does验证来验证和保护上载过程 第一次制作文件上传脚本时,我使用了一行代码,现在,相同的脚本看起来就像一个网页;) 已编辑(用于控制扩展名和文件大小的示例): 如果((
($file\u 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))
{
代码如果一切正常。。。
}
这是一篇老文章,但我有一个随机问题,上传错误部分,然后发布我的解决方案 问题是,在2/3上传之后,我得到了上传错误,客户端没有任何中断 我的问题与保持活动状态服务器有关 我通过在PHP脚本末尾插入用于上传的内容来解决这个问题
header ("Connection: close");
这将强制关闭连接。这解决了我的问题
我希望有人能帮忙
多亏了这个这可能会帮助一些人,但我也有同样的问题。
我的解决方案是卸载libapache2-mod-php5filter并用经典的libapache2-mod-php5替换它。我有一个相同的问题,并且与libapache2-mod-php5filter包有关,我删除了p,问题就结束了。
我希望有人能帮上忙。我今天在本地机器上上传ajax文件时遇到了这个问题,直到(一小时后)我意识到我在另一个程序(MS Excel)中打开了同一个文件(CSV)。在我关闭了有问题的程序后,一切都恢复了正常
希望有帮助 哼。。。是的,假设您的输入应该只处理图片,而用户尝试上载文档,如果该文档应该仅为图片,您应该拒绝任何其他文件扩展名(在编辑注释下查看我的答案…问题是文件名/扩展名如何导致上载错误?嗯,不是…文件扩展名只是对可能遇到的错误的警告…:)特别是要上传_ERR_PARTIAL,Halfdan所说的似乎是唯一的原因…因此,只需通知用户该过程已中断,并应重试!+1以澄清“在文件数据之后未找到mime边界时”@Seb完全+1’那一个也一样。遇到了类似的问题,那张小便条让我找到了来源。:)在我的情况下,我忘记了最后一个边界(在本例中是后面)的前导
--
。经验教训:-)@halfdan-我不明白为什么会缺少mime边界。PHP不处理边界吗?或者,当一个程序保存一个文件(在我的例子中是PDF或pptx)时,该程序设置的文件的开头和结尾不是对我有用吗!我花了几个小时认为我的脚本失败了/弗莱基似乎是服务器。@Treemonkey很高兴有用;-)这里重复:我看到这个答案给出了很多,但如果有人能解释为什么强制禁用keepalive会起作用,那就太好了。我们应该如何在客户端用JS处理这个问题,在服务器端用PHP处理这个问题?我的意思是,如果用户开始上传文件,然后在文件仍在上传时单击页面上的取消按钮,我可以调用.abort()
PHP将如何接收用户取消上传的信息?@yellowantphil对我来说似乎是一个边缘答案
header ("Connection: close");