为了在PHP中上传大文件,我需要增加文件大小/超时值。我不是在谈论改变php.ini
,而是在运行时这样做。
对应的值为
ini_set('upload_max_filesize', '20M');
ini_set('post_max_size', '20M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
或void set_time_limit ( int $seconds )
但是我想知道我需要在哪里设置这个,或者我是否可以这样做?因为在发送上传数据时,脚本只在接收到数据后才执行。所以在我增加超时时间之前,超时时间就开始了,还是我错了?
那么我需要在哪里应用这些设置呢?
并非所有php.ini指令都可以在运行时更改。即使他们这样做,一些指令也没有意义。
查看php.ini指令列表。在可变列下,任何具有PHP_INI_ALL
的配置都可以在运行时(通过您的PHP脚本)更改。
如果你有权限访问php.ini文件,那就编辑它吧——不要为运行时的修改而烦恼。但是,在某些情况下,您需要在运行时增加特定的PHP配置。
set_time_limit
将计数器重置为0,因此脚本可以多次调用它。这可能有助于在foreach
循环中设置max_execution_time
。
例如,如果您必须处理一个大文件或其他东西,您可能希望仅为实例增加max_execution_time
。
From php manual for ini_set
设置给定配置选项的值。配置选项将在脚本执行期间保留这个新值,并且将在脚本结束时恢复。
即使你的PHP脚本不能有效地改变值,你的。htaccess文件可以。(对于PHP_INI_PERDIR
指令)。
查看文档
的例子:
<IfModule mod_php5.c>
php_value upload_max_filesize 2M
php_flag magic_quotes_sybase off
php_flag register_globals off
</IfModule>
同样,如果可能的话,优先使用php.ini文件。