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

php中文网
发布: 2016-06-23 13:23:46
原创
1549人浏览过

各位好!

我写了一个小程序,用于上传视频文件。
在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...

微信 WeLM
微信 WeLM

WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型。

微信 WeLM 33
查看详情 微信 WeLM


回复讨论(解决方案)

看下是不是上传目录权限问题,有没有读写权限,改成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速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号