>백엔드 개발 >PHP 튜토리얼 >대용량 파일을 업로드할 수 없는 PHP의 완벽한 솔루션

대용량 파일을 업로드할 수 없는 PHP의 완벽한 솔루션

小云云
小云云원래의
2018-05-11 17:56:0517033검색

本文我们主要和大家分享完美解决php无法上传大文件的方法,无法上传大文件是因为php.ini配置有限制了,这样限制了用户默认最大为2MB了,超过了就不能上传了,本文我们主要和大家分享完美解决php无法上传大文件的方法,希望能帮助到大家。

 参数  设置  说明 
 file_uploads  on  是否允许通过HTTP上传文件的开关。默认为ON即是开 
 upload_tmp_dir  –  文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 
 upload_max_filesize  8m  望文生意,即允许上传文件大小的最大值。默认为2M 
 post_max_size  8m  指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M 
 说明 
 一般地,设置好上述四个参数后,在网络正常的情况下,上传a48be82851e462df7c77b5edcd0bd4cd8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。 
 max_execution_time  600  每个PHP页面运行的最大时间值(秒),默认30秒 
 max_input_time  600  每个PHP页面接收数据所需的最大时间,默认60秒 
 memory_limit  8m  每个PHP页面所吃掉的最大内存,默认8M 
 把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
 [编辑]论坛文件上传常见错误类型(不断总结中…)

 Warning: Unable to open ‘\\php2′ for reading: Invalid argument in e:\user\web\larksoft.net\upload\upfile.php on line 10

 是php的upload_tmp_dir的原因,所指定的目录必须可读可写

Parse error: parse error in c:\program files\apache group\apache\htdocs\mdweb\ftpfile\upload.php on line 14

 Parse error一般都是语句的问题,比如象“;”,“’”,“)”等等的匹配问题

 搞定了,是/etc/httpd/conf.d/php.conf里面,有一个

 <Files *.php>
  SetOutputFilter PHP
  SetInputFilter PHP
  LimitRequestBody 524288
  </Files>

 把LimitRequestBody 改了就可以了。
 如果你是Nginx的话还需要修改nginx.conf中的http段:
 1. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini
 (1)post_max_size = 50M      #PHP可接受的最大POST数据
 (2)upload_max_filesize = 50M   #文件上传允许的最大值
 (3)max_execution_time = 300   #每个脚本的最大执行时间,秒钟(0则不限制,不建议设0)
 2. 修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf (如果忘了配置文件的具体位置,可以使用 locate nginx.conf 查找)
 (1)client_max_body_size 50m   #客户端最大上传大小 50M
 3. 重启PHP:/etc/init.d/php-fpm restart
 4. 平滑重启Nginx:/usr/local/nginx/sbin/nginx -s reload

相关推荐:

php实现文件上传的示例代码分享

php实现多文件上传的一种方法

php文件大小检测以及大文件上传处理

위 내용은 대용량 파일을 업로드할 수 없는 PHP의 완벽한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.