PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
2015-11-24 19:04
691 查看
今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了,连普通的字段都获取不到了,苦思冥想还没解决,最后问了师傅,师傅看了说挺奇怪的,然后问我upload_max_filesize的值改了吗,我说改了啊,师傅也解决不了了。过了一会师傅问post_max_size改了吗,我说那个和上传没关系吧,师傅没理我,我还是照着自己的想法继续测试,弄了半天还是不行,最后试了师傅提的意见,成功了,原来上传是和post_max_size有关系的。
总结:php.ini配置文件中的默认文件上传大小为2M, 默认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配置文件中的默认文件上传大小为2M, 默认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 修改、增加xml结点属性的实现代码
- PHP 5.3向更高版本迁移之新特性
- log4j:WARN Error initializing output writer. log4j:WARN Unsupported encoding?
- php7 vs HHVM
- PHP内核相关博客
- phpMyadmin:#1045 - Access denied for user 'root'@'localhost' (using password: NO)
- thinkphp3.2完全开发手册摘要
- php curl的CURLOPT_FOLLOWLOCATION选项报错
- win10下PHP的安装
- 如何用原生PHP GET到一个数组
- yii2 的 restful 接口书写自定义方法
- 多媒体开发之h264的三种字节流格式---annexb 哥伦布/mp4 以及还有一种rtp传输流格式
- PHP中使用sleep函数实现定时任务实例
- php生成短网址的思路以及实现方法
- [Mysql数据库] php连mysql的工具类
- PHP页面跳转的三种方法
- Vsftp 虚拟用户配置
- 50个提高PHP程序运行效率的方法
- PHP数据库连接之PDO
- PHP魔术函数、魔术常量、预定义常量