Apache+PHP 解决上传文件大小限制的问题
2017-06-21 09:15
721 查看
在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:
1、php.ini:upload_max_filesize
所上传的文件的最大大小。默认值2M。
2、php.ini:memory_limit
本 指令设定 了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
一般导入数据库时,如果数据库太大,就会报错,改这个就可以
3、php.ini:post_max_size
设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
4、php.ini:max_execution_time = 30 ;
Maximum execution time of each script, in seconds
5、php.ini:max_input_time = 60 ;
Maximum amount of time each script may spend parsing request data
6、如果用到mysql的BLOB进行二进制文件存储,则需要设置my.ini:max_allowed_packet=xxM
7、httpd.conf
在 Apache 里面有一个选项是 LimitRequestBody, 这个选项可以限制用户送出的 HTTP 请求内容。这个选项可以在 .htaccess 或 httpd.conf 里使用,而如果在 httpd.conf 内使用,分别可以用在 virtualhost 或目录属性设定。
LimitRequestBody 的设定值是介乎 0 (无限制) 至 2147483647 (2GB)。
例如要在目录 D:/AppServ/www 设定上传限制为 100K,可以在 .htaccess 或 httpd.conf 加入以下语句:
Apache服务器从客户端接收长度不超过LimitRequestBody字节数的请求,然后传送给php模块,php模块再决定是否保存成临时文件,设置$_FILES全局变量,移交给script进一步处理。
最后还要注意的是:
html本身能够post数据也是有限制的,不能超过2G。
FTP客户端有文件偏移指针的2GB边界限制,未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件。
1、php.ini:upload_max_filesize
所上传的文件的最大大小。默认值2M。
2、php.ini:memory_limit
本 指令设定 了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
一般导入数据库时,如果数据库太大,就会报错,改这个就可以
3、php.ini:post_max_size
设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
4、php.ini:max_execution_time = 30 ;
Maximum execution time of each script, in seconds
5、php.ini:max_input_time = 60 ;
Maximum amount of time each script may spend parsing request data
6、如果用到mysql的BLOB进行二进制文件存储,则需要设置my.ini:max_allowed_packet=xxM
7、httpd.conf
在 Apache 里面有一个选项是 LimitRequestBody, 这个选项可以限制用户送出的 HTTP 请求内容。这个选项可以在 .htaccess 或 httpd.conf 里使用,而如果在 httpd.conf 内使用,分别可以用在 virtualhost 或目录属性设定。
LimitRequestBody 的设定值是介乎 0 (无限制) 至 2147483647 (2GB)。
例如要在目录 D:/AppServ/www 设定上传限制为 100K,可以在 .htaccess 或 httpd.conf 加入以下语句:
LimitRequestBody 1024000000 Options FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all
Apache服务器从客户端接收长度不超过LimitRequestBody字节数的请求,然后传送给php模块,php模块再决定是否保存成临时文件,设置$_FILES全局变量,移交给script进一步处理。
最后还要注意的是:
html本身能够post数据也是有限制的,不能超过2G。
FTP客户端有文件偏移指针的2GB边界限制,未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件。
相关文章推荐
- 修改配置真正解决php文件上传大小限制问题(apache+php)
- PHP和Nginx 文件上传大小限制问题解决方法
- 通过修改配置真正解决php文件上传大小限制问题(nginx+php)
- php上传文件大小限制问题的解决
- 【转载】解决Apache2+PHP上传文件大小限制的问题
- PHP和Nginx 文件上传大小限制问题解决方法
- PHP和Nginx 文件上传大小限制问题解决方法
- 修改配置真正解决php文件上传大小限制问题(nginx+php)
- 解决Apache2+PHP上传文件大小限制的问题
- PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法
- 修改Nginx与Apache配置参数解决http状态码:413上传文件大小限制问题
- LNMP一键安装包PHP和Niginx 文件上传大小限制问题解决方法
- PHP和Nginx 文件上传大小限制问题解决方法
- 解决Apache2+PHP上传文件大小限制的问题技术集锦
- 通过修改配置真正解决php文件上传大小限制问题(nginx+php)
- 解决Apache2的PHP上传文件大小的限制
- zt对于C#中的FileUpload解决文件上传大小限制的问题设置
- php中让上传的文件大小在上传前就受限制的两种解决方法
- 如何解决ASP.NET中的文件上传大小限制的问题
- 修改PHP服务器文件上传大小限制-apache,lighttpd,nginx