Heim  >  Artikel  >  Backend-Entwicklung  >  PHP上传文件$_FILES无法接受到信息

PHP上传文件$_FILES无法接受到信息

WBOY
WBOYOriginal
2016-06-23 13:23:461412Durchsuche

各位好!

我写了一个小程序,用于上传视频文件。
在windows下测试的时候:
php5.5+apache2.4.9,php最大上传大小的两个配置已经设置为1024M
这时候上传任意视频都是没问题。

但是拿到linux上的时候:
php5.3+nginx,同样,php配置文件配置好,nginx.conf也将clinent_max_body_size设置为1024M。

但是从XP的系统上复制了一个名为“我是小海军0.mp4”的视频文件,140M左右,上传,$_FILES打印出来为空。
在我本机(win8)拷贝了两个视频文件,一个2M一个400M左右,都命名"我是小海军0.mp4",均上传成功,所以排除了中文名的问题。(我也在上传类中对中文名做了相应处理)。

现在实在想不出来了,最大上传大小限制可以排除,命名问题可以排除。那只能是文件的问题了,到底是啥问题呢。。

help...


回复讨论(解决方案)

看下是不是上传目录权限问题,有没有读写权限,改成775或者777试试

如果你没有设置上传文件格式先上传一个小文本文件测试一下。
包括代码(Linux下严格区分大小写)和Linux下权限问题(这个可能性最大了)
如果上传成功了那就是你上传文件大小限制出问题了。

上传文件的大小超过了 post_max_size 的限定

检查一下错误日志

post_max_size和upload_max_filesize都已经设置了1024M。nginx.conf也设置了clinent_max_body_size 1024M,不知道我这么设置对不对,网上找的方法。应该是没什么问题的。
问题的重点是:
400M左右的MP4可以上传,100M左右的MP4就上传不了,而且他们文件名是相同的。
我知道唯一的区别就是,100M的MP4文件是从XP系统的电脑上拷的,400M的MP4文件是我的电脑上的,win8。

因为不知道100M的文件的制作来源,也不清楚有什么可能的原因,所以不知道可以给出什么信息。
希望各位能够帮帮忙,如果需要一些其他的信息,我再发出来。

140那个文件,文件名改为纯数字字母,试下,排除下是不是编码问题。

140那个文件,文件名改为纯数字字母,试下,排除下是不是编码问题。



纯英文或者纯数字都不行,编码问题?

是用浏览器表单上传的吗?
XP系统有没有成功的文件?
从XP发字符串可以成功接收吗?

是用浏览器表单上传的吗?
XP系统有没有成功的文件?
从XP发字符串可以成功接收吗?


是的,表单提交,xp上也有成功的文件,发字符串也可以接受,那个不成功的文件,拿到我的机子上上传也没用。从XP上拷了两个文件过来,上传都接收不到

虽然你2014年问的问题,我还是要回答一下:
php 5.3  
php 5.5 
这2个版本对文件的上传 方法不是一样的哦

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn