php上传文件失败解决方案
文章目录
- 原因1查找:大小限制
- 全部参数解释
- $_FILES[‘myFile’][‘error’] 值
- 解决
- 修改其他参数
- 另外补充:文件上传结束后去向
- 原因2查找:脚本停止运行
- 原因3查找:post_max_size
原因1查找:大小限制
可以通过
var_dump($_FILES['变量名'])
来打印一下错误信息
例如:
// 打印上传资源信息var_dump($_FILES['source']);// 判断是否上传成功if ($source['error'] !== UPLOAD_ERR_OK) {$GLOBALS['error_message'] = '上传音乐文件失败1';return;}
显示 error参数为1 , 即该文件上传相关的状态码。
那么这些参数是什么意思呢?
全部参数解释
PHP用超级全局变量数组$_FILES
来记录文件上传相关信息的。
$_FILES[‘myFile’][‘name’]
客户端上次文件的原始名称。$_FILES[‘myFile’][‘type’]
文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。$_FILES[‘myFile’][‘size’]
已上传文件的大小,单位为字节。$_FILES[‘myFile’][‘tmp_name’]
文件被上传后在服务端储存的临时文件名,一般是系统默认。
可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。$_FILES[‘myFile’][‘error’]
和该文件上传相关的状态码。
[‘error’] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
$_FILES[‘myFile’][‘error’] 值
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。 UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
解决
例如上文案例,错误是1 ,那么就是上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
那么就去修改php.ini文件中的参数就可以了。
(php.ini就在php的安装目录下 和php.exe放在一起)
修改其他参数
如果有其他参数问题,修改其他参数就可以了
1.file_uploads=on/off是否允许通过http方式上传文件2.max_execution_time=30允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了
–enable-memory-limit标志的情况下才生效4.upload_max_filesize=20M允许上传文件的最大大小,此指令必须小于post_max_size5.upload_tmp_dir上传文件临时存放目录6.post_max_size=30M允许post方式可以接受最大大小
另外补充:文件上传结束后去向
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。
也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。
原因2查找:脚本停止运行
附:修改PHP上传文件大小限制的方法
在这里插入代码片
一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
原因3查找:post_max_size
修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
php上传文件失败解决方案相关推荐
- 关于在node.js 中使用formData 发送axios上传文件失败解决方案
最近用到了node.js进行文件上传到其他服务器,在使用formData 上传时候遇到对方接口处理失败问题 问题原因 因为node.js 中 axios 没法识别 Content-Type 设置,所以 ...
- 阿里云OSS上传请求403问题的完美解决方案及uni.uploadFile h5上传文件失败完美解决方案
在使用阿里云OSS服务时,会用到跨域AJAX上传,上传时报403错误,之前遇到过此类问题并成功解决了,但时间长了遗忘,因此记录下来以备后续学习了解ajax跨域上传OSS. ajax跨域上传首先会发送o ...
- 记在k8s的pod上使用apache的commons-net:ftp功能时,ftp一直上传文件失败
2019独角兽企业重金招聘Python工程师标准>>> 在k8s的pod上使用apache的commons-net:ftp功能时,一直显示: 即上传文件失败,但是在本地环境进行上传时 ...
- Hadoop上传文件失败
HDFS上传文件失败的原因以及解决方法 本来打算上传一个文件 hdfs dfs -put /opt/software/upload.txt /test 但是报错了!!! 百度了很多,但是没有一条适合我 ...
- 上传文件失败问题 error为7
一个站点上传文件失败 error为7 UPLOAD_ERR_CANT_WRITE 临时文件上传不上 $_FILE打出来 Array ( [file] => Array ...
- TFS文档管理,上传文件失败报错【TF30042】The database is full. 数据库已满,解决办法及步骤
在TFS是用过程中,上传文件失败,发现报错[TF30042],问题截图长这样: 分3步排查问题, 第1步:先查看自己TFS所在数据库存储情况,方法如下: 打开SQL Server Management ...
- 英文投稿系统上传文件失败怎么办?
英文投稿系统上传文件失败怎么办? 文件上传失败的几个原因 文件上传失败的几个解决方法 文件上传失败的几个原因 1.文件格式不符合投稿系统要求(比如:文件太大或者图片格式不符合要求或者文件类型不符合要求 ...
- sftp上传文件失败解决
同事求助,说他用sftp上传文件失败. 首先想到的是权限问题.于是登陆服务器,cd到上传目录,ls -l看上去没问题. 测试一下吧,用我自己的帐号sftp登陆,随便传一个文件,成功了. 哈,问题范围缩 ...
- cuteftp上传文件失败,提示权限失败
记事: 通过cuteftp在服务器的linux上搭建gcc交叉编译工具链时,发现上传文件失败并且提示权限不足,于是百度得知新建的文件夹权限可能不足,于是通过""chmod 权限 文 ...
最新文章
- 多人编辑、共享思维导图
- MYSQL的深入学习--优化步骤
- python课程推荐-课程推荐:四天人工智能 python入门体验课
- python dict常用操作
- hdu 1022 Train Problem I 解题报告
- modelsim显示状态机名称的方法
- python自动化测试脚本怎么编写_编写自动化测试脚本心得---菜鸟入门篇
- 微课|Python三种方法统计各分数段内的人数(17分钟)
- 互联网公司面试必问的mysql题目(上)
- eplan窗口宏与符号宏是什么_如何使用EPLAN里的宏值集?
- SQL Server安装教程
- 伺服驱动器cn1引脚定义_伺服驱动器CN1引脚定义,和面板操作设置,跪求高手指点。说明书弄丢了.脉冲,使能,方向,接第几引脚...
- 对于pdf转图片linux乱码的解决
- 有哪些支持 HomeKit 的智能家居生态值得推荐?
- 全国计算机等级考试 三级网络技术 知识点总结
- Windows环境下安装Oracle11g客户端
- Axure实战——实现登录注册功能
- 免费桌面视频录像工具OBS的简单操作介绍
- oracle 执行计划(F5)详解
- 软件加密系统Themida应用程序保护指南(七):外挂插件
热门文章
- educoder 2-2Python 计算思维训练——循环与列表(二)
- 解决 Mounty显示问题:the volume my passport is not mounted currently at the specified path Please remove
- PredRNN++:网络结构和代码解读
- 程序员的一天:硅谷女程序员 mayuko
- SAP PS 项目编码配置 OPSJ/OPSK
- Oracle创建表空间和用户
- Guiding Teacher Forcing with Seer Forcing for Neural Machine Translation翻译
- git 创建新分支并关联远程分支_git 把远程分支拿到本地,并建立关联关系track | 学步园...
- 迷你四足机器人制作_从0到1
- CRM IFD部署更换证书 - adfs证书更换