【问题标题】:Where to set timeout and file size values in PHP script在 PHP 脚本中设置超时和文件大小值的位置
【发布时间】:2013-04-07 10:07:28
【问题描述】:

为了在 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 file-upload installation


【解决方案1】:

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

查看php.ini directives 的列表。 在 Changeable 列下,任何具有PHP_INI_ALL 的配置都可以在运行时更改(通过您的 PHP 脚本)。

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

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

例如,如果您必须处理大文件或其他内容,您可能希望仅针对该实例增加max_execution_time

来自ini_set的php手册:

设置给定配置选项的值。配置 选项将在脚本执行期间保留这个新值,并且 将在脚本结束时恢复。

即使您的 PHP 脚本不能有效地更改值,您的 .htaccess 文件也可以。 (对于PHP_INI_PERDIR 指令)。

请参阅documentation

例子:

<IfModule mod_php5.c>
   php_value  upload_max_filesize  2M
   php_flag magic_quotes_sybase              off
   php_flag register_globals                 off
</IfModule>

同样,如果可能,请优先考虑 php.ini 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多