Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么文件只能部分上传?_Php_Error Handling_Upload_File Upload - Fatal编程技术网

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

Php 为什么文件只能部分上传?,php,error-handling,upload,file-upload,Php,Error Handling,Upload,File Upload,为什么文件只能部分上传 我正在改进PHP文件上传脚本中的错误处理,并试图找出如何正确处理上传错误 我应该提示用户再次尝试上载该文件,还是应该通知他们存在更严重的问题,阻止他们上载可能合法的文件 为什么一个文件只能被部分删除 上传 这通常是由用户取消上载引起的 我应该提示用户尝试吗 再次上传文件,还是我应该 通知他们有更多的问题 正在预防的严重问题 他们不可能上传一个 合法文件 您应该提示他们再试一次,如果问题仍然存在,请联系网站所有者,包括尽可能多的详细信息。UPLOAD\u ERR\u PAR

为什么文件只能部分上传

我正在改进PHP文件上传脚本中的错误处理,并试图找出如何正确处理上传错误

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

为什么一个文件只能被部分删除 上传

这通常是由用户取消上载引起的

我应该提示用户尝试吗 再次上传文件,还是我应该 通知他们有更多的问题 正在预防的严重问题 他们不可能上传一个 合法文件


您应该提示他们再试一次,如果问题仍然存在,请联系网站所有者,包括尽可能多的详细信息。

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");