PHP代碼中使用post參數上傳大文件

PHP代碼中使用post參數上傳大文件

發表於2013年11月21日sylar 3,834 viewsphp

今天連續碰到了兩個同事向我反應上傳大文件(8M)失敗的事情!nginx

都是在PHP代碼中一般使用post參數進行上傳文件時,當文件的大小大於8M時,上傳不能不成功。php-fpm

首先,我想到了nginx的client_max_body_size參數,這個參數限定了nginx接收的http請求的body的最大值。在nginx.conf配置文件中client_max_body_size設置的值是8M。增大該值,reload nginx以後從新測試。若是文件仍然不能上傳,這時引發該錯誤的緣由最大的可能性與php的配置有關。post

查看php的錯誤日誌,裏面的記錄以下測試

PHP Warning: POST Content-Length of 8947356 bytes exceeds the limit of 8388608 bytes in Unknown on line 124spa

提示很明顯,POST參數最大值也是8388608bytes(8M),修改php.ini中的post_max_size參數值,重啓php-fpm服務進程,便可解決問題。日誌

另外須要注意php.ini配置文件中的file_uploads、upload_max_filesize、memory_limit 等參數值。進程

相關文章
相關標籤/搜索