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 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
通过PHP实现获取访问用户IP
May 09 PHP
TP5多入口设置实例讲解
Dec 15 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 array_intersect()函数使用代码
2009/01/14 PHP
ajax php 实现写入数据库
2009/09/02 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
vue实现计算器功能
2020/02/22 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
Python字符遍历的艺术
2008/09/06 Python
python实现图片压缩代码实例
2019/08/12 Python
python实现简易学生信息管理系统
2020/04/05 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
会务接待方案
2014/02/27 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
教师考察材料范文
2014/06/03 职场文书
反腐倡廉观后感
2015/06/08 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers