php 上传大文件注意问题

一、如果要对文件进行复杂的处理,注意设置php.ini中的max_execution_time、max_input_time为足够大,如大量字符串处理urlencode等。

二、如果文件处理要占用较大内存,注意设置php.ini中的memory_limit为足够大。

前面几项如果太小一般会报php fatal error的错误

三、如果webserver为nginx,注意设置配置文件nginx.conf中的以下配置:

client_max_body_size 足够大

fastcgi_connect_timeout 足够大

fastcgi_send_timeout 、fastcgi_read_timeout 这两个貌似不需要太大,我是将其设置了个较大值。

这几个设置如果太小一般会出现gateway timeout的错误。

四、大文件如果按行读取一般用fgets或者stream_get_line,但是stream_get_line性能要比fgets高,特别是一行的内容较多时,并且可以指定行分隔符。

file_get_contents读取大文件很容易导致内存分配失败,特别是memory_limit设置较小时,所以尽量不用,除非可以保证文件一定不会太大。

原文地址:https://www.cnblogs.com/argb/p/3335826.html