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 array_flip() 删除数组重复元素
Jan 14 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
详解php比较操作符的安全问题
Dec 03 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
laravel 实现划分admin和home 模块分组
Oct 15 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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
html中select语句读取mysql表中内容
2006/10/09 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP插入排序实现代码
2013/04/04 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
python判断字符串或者集合是否为空的实例
2019/01/23 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
党课培训主持词
2014/04/01 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2015年班组工作总结
2015/04/20 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Oracle用户管理及赋权
2022/04/24 Oracle
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL