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 相关文章推荐
php批量删除数据
Jan 18 PHP
PHP中的string类型使用说明
Jul 27 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php构造函数实例讲解
Nov 13 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PDO::errorCode讲解
Jan 28 PHP
php libevent 功能与使用方法详解
Mar 04 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
JS常用知识点整理
2017/01/21 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
vue视图不更新情况详解
2019/05/16 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python和Go语言的区别总结
2019/02/20 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
《分一分》教学反思
2014/04/13 职场文书
2014年会策划方案
2014/05/11 职场文书
个人授权委托书范本
2014/09/14 职场文书
天坛导游词
2015/02/02 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
python识别围棋定位棋盘位置
2021/07/26 Python
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏