私はajaxとPHPでアップロードスクリプトを使用しています。これは80MB未満のファイルには不思議に思えます。しかし、ファイルが80MBを超えると失敗し、何も出力しません。大きなファイルでphp://入力が失敗する
コードは次のとおりです。
$maxsize = getMaxFileSize();
$finalfile = $uploadpath . $finalname;
$putdata = fopen("php://input", "r");
$fp = fopen($finalfile, "w");
$filesizecalc = 0;
while ($data = fread($putdata, 1024)) {
fwrite($fp, $data);
$filesizecalc = $filesizecalc + 1024;
}
fclose($fp);
fclose($putdata);
if ($filesizecalc <= $maxsize) {
addFile($_SESSION['userdata']['userid'], $finalname);
echo "$fn uploaded";
} else {
unlink($finalfile);
}
exit();
これは、ほぼすべてのファイル< 80メガバイトで正常に動作しますが、80メガバイトよりも大きなファイルに対しては出力事ないので、私も間違って何が起こっているのか分かりません、私は設定していても
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors', 1);
ini_set('memory_limit', '1024M');
ini_set('upload_max_filesize', '1024M');
ini_set('post_max_size', '1024M');
ini_set('max_input_time', 10000);
ini_set('max_execution_time', 10000);
実行php_infoを()。通常はupload_max_filesizeをini_setで設定することはできません – SimSimY
あなたはそうです、それはini_setで設定されていません。しかし、それはホストによって100Mに設定されています。これは99MBのファイルで十分でしょうか? また、max_input_timeは60に設定されていますが、それも低くはありませんか? –
私は、99MBのファイルを100MB制限でアップロードするのは危険であると言います。ヘッダー、制御パケットなどは10%増やす必要があります.60MBの100MBは1.7mb/sのアップロード速度(13.5Mbのアップロードリンク)です。おそらく十分ではありません – SimSimY