私はLaravelを使用して複数のファイルをS3バケットにアップロードしていますが、クライアント側で進捗データを正しく取得できません。 Laravelの側で進捗バー付きAWS S3に複数のファイルをアップロード
var xhr = new XMLHttpRequest();
xhr.addEventListener("progress", updateProgress, false);
xhr.addEventListener("load", transferComplete, false);
xhr.open("POST", "my_url_to_upload");
xhr.send(formData);//formData is defined earlier and contains multiple files
function updateProgress(e) {
console.log('updateProgress', e);
}
function transferComplete(e) {
console.log("Files uploaded successfully.", e);
}
::これは素晴らしい限りS3バケットにファイルをアップロードするように動作
$files = \Input::file('file');
$s3 = \Storage::disk('s3');
foreach ($files as $file)
{
$file_name = "/some_folder/" . $file->getClientOriginalName();
$s3->put($file_name, file_get_contents($file), 'public');
}
クライアント側で
私は、次の(簡易)を持っています。
複数のファイルをアップロードするとき、クライアント側のupdateProgress
関数は、(各ファイルの後ではなくアップロード中に)すべてのファイルがアップロードされたときにのみ呼び出されるという問題があります。
理想的には、ファイルのアップロード中にプログレスバーが定期的に更新されるため、大容量のファイルをアップロードするときにリアルタイムで進行状況が表示されるようになります。
アップロード中に進捗状況を報告するにはどうすればLaravel(または一般的にPHP)を取得できますか?ここで