2010-05-30 83 views
20

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

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

我应该提示用户再次尝试上传文件,还是应该通知他们有一个更严重的问题,即阻止他们上传可能合法的文件?

回答

5

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

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

我应提示用户尝试 重新上传文件,或者我应该 通知他们存在被阻止 他们上传可能 合法的文件更 严重的问题?

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

+0

我们应该如何在客户端使用JS处理这种情况,并在服务器端使用PHP?我的意思是,如果用户开始上传文件,然后在文件仍在上传时单击页面上的取消按钮,我可以调用'.abort()'PHP如何接收用户取消该信息上传? – tonix 2016-02-21 22:15:24

24

UPLOAD_ERR_PARTIAL在文件数据后未找到MIME边界时给出。一个可能的原因是上传被用户取消(按ESC等)。

我认为足以通知用户该文件仅部分上传,而重试将解决该问题。

+8

+1用于说明“当文件数据后没有找到MIME边界” – Seb 2011-11-24 00:20:43

+0

@Seb也完全为此+1了。遇到了类似的问题,这个小小的附注让我接触到了源代码。 :) – 2015-03-29 21:20:04

+0

在我的情况下,我忘了最后(在这种情况下)边界的前导'--'。获悉的经验:-) – ninetwozero 2016-04-27 22:01:05

2

好了,文件上传,可以通过打断:

空间不足目的地

连接中断

损毁的文件

错误的名称

扩展名错误

等等

你能做的最好的是验证和保护上载过程中有没有前实际验证发送文件到服务器...

我第一次做了文件上传脚本,我用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... 


} 
+2

错误的扩展?有个例子吗? – 2010-05-30 04:11:26

+0

humm ...是的,想象一下,你的输入应该只与图片一起工作,而用户试图上传文件,如果它应该只是图片,你应该拒绝任何其他文件扩展名(查看编辑评论下的答案... – Zuul 2010-05-30 04:38:40

+3

的问题是如何将一个文件名/扩展导致UPLOAD_ERR_PARTIAL? – webbiedave 2010-05-30 05:05:08

8

这是旧的文章,但我有UPLOAD_ERR_PARTIAL的随机问题,并张贴我的解决方案。

的问题是,经过2/3上传我得到UPLOAD_ERR_PARTIAL的错误,没有客户端的任何中断。

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

我解决它通过在PHP脚本的末尾插入上传

header ("Connection: close"); 

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

我希望有人能帮忙。

感谢这个LINK

+1

为我工作!我花了几个小时认为我的脚本失败了/ flakey似乎是它的服务器。 – Treemonkey 2013-08-23 10:33:18

+0

@Treemonkey高兴能成为有用的;-) – 2013-08-23 11:33:41

+0

这里重复的:http://stackoverflow.com/questions/12425394/post-data-is-missing-when-posting-the-same-data-in-rapid-sequence – 2014-01-15 18:22:11

1

这可能会帮助一些人,但我有同样的问题。 我的解决办法是卸载中的libapache2-MOD-php5filter并与经典中的libapache2-MOD-PHP5

+1

谢谢!没有别的为我工作。这样做了! – 2016-11-11 09:08:23

0

我有同样的问题,取代它,并用包中的libapache2-MOD-php5filter有关,我去掉p和问题结束。 我希望有人能帮忙。

+1

@yantantphil看起来像一个边缘线答案给我 – 2016-11-09 03:41:20

相关问题