2013-01-31 68 views
0

首先對於另一個相同的問題(我知道這個問題的無數次迭代),但我完全堅持這一個,並花了整天尋找答案(以及檢查所有以前線程在這裏)。PHP大文件上傳(再次)

所以我試圖通過PHP上傳大(ish)文件。該腳本在大約8-10Mb標記的文件失敗(適用於文件高達7.5Mb,失敗10Mb)。它只是返回一個空文件數組,即:

print_r($_FILES) 
= array() 

在Windows 2008 R2操作系統上使用Plesk 10運行IIS7。我的繼承人形式:

<form enctype="multipart/form-data" action="upload.php" method="POST"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="200000000"> 
    <input name="Filedata" type="file" /> 
<input type="submit" value="Upload File" class="button" /> 
</form> 

一些相關的php.ini變量:

max_execution_time: 240 
max_input_time: 360 
post_max_size: 1600M 
upload_max_filesize: 800M 
memory_limit 1600M 

而且我的web.config有這樣的:

<security> 
    <requestFiltering> 
    <requestLimits maxAllowedContentLength="200000000"/> 
    </requestFiltering> 
</security> 

我知道,在php.ini的正在聽着,因爲php_info()報告它們(也是ini_get('...')報告它們也是正確的。)作爲旁邊它們是'本地'值,'主''值低很多假設php_info()報告本地爲那個他們是被使用的)。我把一些調試代碼到我的腳本:

echo ini_get('post_max_size') . "<br />"; 
echo ini_get('upload_max_filesize') . "<br />"; 
echo $_SERVER['CONTENT_LENGTH'] . "<br />"; 

那回聲出來:

1600M 
800M 
10424520 

最後一個是以字節爲單位的10Mb(ISH)文件大小(我假設)。所以我的問題是,我在這裏錯過了什麼?

+0

你檢查過你的IIS最大輸入/運行時間嗎? –

+0

不確定我在哪裏可以找到它?雖然我在5秒內上傳了10Mb文件,但我認爲這不是一個時間問題。 –

回答

1

所以我終於在這裏找到了答案,並認爲它可能會在未來幫助一些靈魂。

事實證明,Plesk雖然允許您覆蓋'本地'php設置,但實際上並未聽取該更改,並且正在監聽php.ini中的'主'值,並且本地一些不是。

這裏即使世界更多的信息: PHP post_max_size local value overridden by master value on Plesk/IIS?

來解決,我改變了主值根據需要更改默認的Plesk的php.ini的。 phpinfo()報告我所需的post_max_size現在在本地和主服務器都是800M,並且按需要工作。