まず、別の同じことをお詫びします(私が知っているこの質問の無数の繰り返し)が、私はこれに完全に悩まされ、答えを探すのに一日中費やしました(ここで以前のすべてのスレッドをチェックするとともに)。
だから私はPHPを介して大きな(っぽい)ファイルをアップロードしようとしています。スクリプトは、8 ~ 10Mb マーク付近のファイルで失敗します (最大 7.5Mb のファイルで機能し、10Mb で失敗します)。空のファイル配列を返すだけです。つまり、次のようになります。
print_r($_FILES)
= array( )
Windows 2008 R2 OS で 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_info() がそれらをそのように報告するため (また、ini_get('...') もそれらを正しいと報告するため)、php.ini がリッスンされていることはわかっています。 (ただし、php_info() がローカルを報告する場合は、それらが使用されていると仮定しています。)スクリプトにデバッグ コードを追加します。
echo ini_get('post_max_size') . "<br />";
echo ini_get('upload_max_filesize') . "<br />";
echo $_SERVER['CONTENT_LENGTH'] . "<br />";
それは反響します:
1600M
800M
10424520
最後の 1 つは 10Mb (ish) のファイル サイズ (バイト単位) です (私は想定しています)。だから私の質問は、ここで何が欠けているのですか?