PHP上传文件参考配置大文件上传


Posted in PHP onDecember 16, 2015

 PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节。

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_size

5.upload_tmp_dir

  上传文件临时存放目录

6.post_max_size=30M

  允许post方式可以接受最大大小

$_FILES数组内容如下: 3water.com

$_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以后成了常量) 

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.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。

也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。

附:修改PHP上传文件大小限制的方法

1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.

但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.

这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time

在php.ini里查找

max_execution_time

默认是30秒.改为

max_execution_time = 0

0表示没有限制

2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。

php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为

post_max_size = 150M

3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.

为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。

查找upload_max_filesize,默认为8M改为

upload_max_filesize = 100M

另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

PHP 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
一个基于PDO的数据库操作类
Mar 24 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
smarty中js的调用方法示例
Oct 27 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
谈谈 PHP7新增功能
Dec 16 #PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 #PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 #PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 #PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 #PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 #PHP
PHP工程师VIM配置分享
Dec 15 #PHP
You might like
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python实现C4.5决策树算法
2018/08/29 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
院药学专业个人求职信
2013/09/21 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
委托书范本
2014/04/02 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
班级体育活动总结
2014/07/05 职场文书
离婚协议书标准格式
2014/10/04 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年读书月活动总结
2015/03/26 职场文书
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python