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&mysql(六)
Oct 09 PHP
PHP 输出缓存详解
Jun 20 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
php遍历数组的4种方法总结
Jul 05 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
php生出随机字符串
Jul 06 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
PHP学习之字符串比较和查找
2011/04/17 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python查找相似单词的方法
2015/03/05 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python 实现字符串下标的输出功能
2020/02/13 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
继承公证书样本
2014/04/04 职场文书
企业宣传策划方案
2014/05/29 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
暑期工社会实践报告
2015/07/13 职场文书
浅谈Python中的正则表达式
2021/06/28 Python