2

为了在 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 )

但我想知道我需要在哪里设置这个,或者我是否可以这样做?因为在发送上传数据时,只有在收到数据才会执行脚本。所以超时开始了,在我可以增加它之前,还是我错了?

那么我需要在哪里应用设置?

4

1 回答 1

2

并非所有 php.ini 指令都可以在运行时更改。即使他们这样做,一些指令也没有意义。

请参阅php.ini 指令列表。在Changeable列下,任何PHP_INI_ALL可以在运行时更改的配置(通过您的 PHP 脚本)。

如果您有权访问 php.ini 文件,请继续编辑它 - 不要为运行时更改而烦恼。但是,在某些情况下,您将需要在运行时增加特定的 PHP 配置。

set_time_limit将计数器重置为 0,因此您的脚本可以多次调用它。max_execution_time这对于在foreach循环中设置可能很有用。

例如,如果您必须处理一个大文件或其他东西,您可能希望增加max_execution_timejust for the instance。

来自 php 手册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 文件。

于 2013-04-07T10:45:44.183 回答