php $_files 接收不到值,PHP上传文件$_FILES无法接受到信息

各位好!

我写了一个小程序,用于上传视频文件。

在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个版本对文件的上传 方法不是一样的哦

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值