php文件上传你必须知道的几点


Posted in PHP onOctober 20, 2015

本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dirupload_max_filesizepost_max_size等选项,下面一一说明。

php文件上传你必须知道的几点

打开php.ini配置文件找到File Uploads
file_uploads = On

默认允许HTTP文件上传,此选项不能设置为OFF。
upload_tmp_dir =
默认为空,此选项在手动配置PHP运行环境时,也容易遗忘,如果不配置这个选项,文件上传功能就无法实现,这个选项设置的是文件上传时存放文件的临时目录,你必须给这个选项赋值,比如upload_tmp_dir ='/leapsoulcn',代表在C盘目录下有一个leapsoulcn目录,和session配置一样,如果你是在linux环境下,你必须赋予这个目录可写权限。
如何上传超过8M的大文件?
上传大文件主要涉及配置upload_max_filesizepost_max_size两个选项。
php.ini配置文件中的默认文件上传大小为2M,php初学者容易犯的一个错误是在编写文件上传功能时通过设置上传文件最大大小的表单区域,即允许上传文件的最大值,max_file_size(隐藏值域)的值来规定上传文件的大小,其实一般别人可以绕过这个值,所以安全起见,最好是在php.ini配置文件中配置upload_max_filesize选项,设定文件上传的大小。
默认upload_max_filesize = 2M,即文件上传的大小为2M,如果你想上传超过8M的文件,比如20M,你必须设定upload_max_filesize = 20M
但是光设置upload_max_filesize = 20M还是无法实现大文件的上传功能,你必须修改php.ini配置文件中的post_max_size选项,其代表允许POST的数据最大字节长度,默认为8M。如果POST数据超出限制,那么$_POST和$_FILES将会为空。要上传大文件,你必须设定该选项值大于upload_max_filesize指令的值,我一般设定upload_max_filesize和post_max_size值相等。另外如果启用了内存限制,那么该值应当小于memory_limit选项的值。
文件上传的其他注意事项
在上传大文件时,你会有上传速度慢的感觉,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中max_execution_time配置选项在作怪,其表示每个脚本最大允许执行时间(秒),0 表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0。
至此,在php.ini配置文件中对文件上传选项进行配置的PHP教程就介绍完毕了,通过上面的步骤实践与学习,再结合PHP程序,文件上传功能就可以实现了。

更多关于PHP文件上传的精彩内容请关注专题《PHP文件上传汇总》,希望对大家有帮助。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP脚本数据库功能详解(上)
Oct 09 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
CI框架中zip类应用示例
Jun 17 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
PHP判断上传文件类型的解决办法
Oct 20 #PHP
php上传大文件失败的原因及应对策略
Oct 20 #PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 #PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 #PHP
php生成动态验证码gif图片
Oct 19 #PHP
php批量删除超链接的实现方法
Oct 19 #PHP
php二维码生成
Oct 19 #PHP
You might like
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
使用js获取伪元素的content实例
2017/10/24 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
给领导的致歉信范文
2014/01/13 职场文书
顶撞老师检讨书
2014/02/07 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
交通事故协议书
2014/04/15 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
门店业绩提升方案
2014/06/08 职场文书
党员个人党性分析材料
2014/12/18 职场文书
教师节大会主持词
2015/07/06 职场文书
六年级作文之预言作文
2019/10/25 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang