2012-08-16 54 views
0

我正在使用cakephp 2.x併爲了做文件上傳,我將以下變量設置爲我在互聯網上找到的自定義值。關於文件上傳的PHP配置變量定義

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)究竟做了什麼?

請注意,我在互聯網上搜索了允許大文件上傳所需的更改,並且我做了與網站顯示相同的更改,因此沒有任何意見或問題爲什麼要進行這些更改。我只是跟着別人做了什麼來上傳大文件。如果我可以找到該網站,我會用鏈接更新這個問題。

請不要只發布變量的定義。我也能在網上找到那些,我發佈這個問題的唯一原因是因爲我很難理解它們與文件上傳的關係。

感謝

回答

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)。

+0

嘿,謝謝你的回答。所以,我假設文件上傳不受任何影響。輸入時間在文件被完全上傳之後。但執行時間仍然令人困惑。會話似乎與文件上傳無關,所以我會將其改回默認值。你能確認嗎?謝謝 – RXC 2012-08-16 14:20:43

+0

@RXC:文件上傳(不是說上傳後的威脅)不受我解釋的3個選項的影響。 max_execution_time是PHP自己運行**的時間(例如,在file_get_contents()或exec()中花費的時間沒有計入)。 – OcuS 2012-08-16 15:09:18

+0

真棒,謝謝你,很高興知道這些變量實際上做了什麼。 – RXC 2012-08-16 15:15:57