我正在使用cakephp 2.x,为了进行文件上传,我将以下变量设置为我在互联网上找到的自定义值。
upload_max_filesize = 110MB
max_post_size = 120MB
max_execution_time = 10800 (seconds)
max_input_time = 10800 (seconds)
session.gc_maxlifetime = 10800 (seconds)
我需要帮助的是理解是否需要更改所有这些变量,以便允许上传大小在30 MB到105 MB范围内的文件。
我理解upload_max_filesize
,max_post_size
是发布信息的大小,包括文件和任何表单以及其他数据。
其他3究竟是什么意思?执行时间是否包含上传所需的时间?与输入时间相同的问题。最后一个变量(session.gc
)究竟做了什么?
请注意,我在互联网上搜索了允许大文件上传所需的更改,并且我做了与网站显示相同的更改,因此没有任何关于我为何进行这些更改的评论或问题。我只是按照其他人的方式上传大文件。如果我能找到该网站,我将通过链接更新此问题。
请不要发布变量的定义。我也能在网上找到这些,我发布这个问题的唯一原因是因为我很难理解它们与文件上传的关系。
由于
答案 0 :(得分:1)
所有这些参数都与php函数ini_set()相关。
可以在PHP documentation Appendix / List of php.ini directives。
中找到所有配置选项的列表max_execution_time 整数:设置允许脚本在解析器终止之前运行的最长时间(以秒为单位)。这有助于防止编写不良的脚本占用服务器。默认设置为30.从命令行运行PHP时,默认设置为0。 最大执行时间不受系统调用,流操作等的影响。有关更多详细信息,请参阅set_time_limit()函数。 在安全模式下运行时,无法使用ini_set()更改此设置。唯一的解决方法是关闭安全模式或更改php.ini中的时间限制。 您的Web服务器可能具有其他可能会中断PHP执行的超时配置。 Apache有一个Timeout指令,IIS有一个CGI超时功能。两者都默认为300秒。有关具体详细信息,请参阅Web服务器文档。
max_input_time 整数:设置允许脚本解析输入数据的最长时间(以秒为单位),如POST和GET。它是从接收服务器上的所有数据到脚本执行开始的时刻开始计算的。
session.gc_maxlifetime 整数:session.gc_maxlifetime指定数据被视为“垃圾”并可能被清除的秒数。会话开始时可能会收集垃圾(取决于session.gc_probability和session.gc_divisor)。