バケット URL に直接送信して、Amazon S3 に直接アップロードしています。
ページは次のようにモックアップされています。
<div id="one">
<upload image form>
</div>
<div id="two>
<information form>
</div>
Div "two" はデフォルトで非表示になっています。ユーザーがアップロード画像フォームで送信を押すと、.submit() フックが呼び出され、div one が非表示になります。Div 2 が表示され、ユーザーはアップロードする画像に関する追加情報を入力します。
ただし、アップロードする画像が大きく、接続によってはアップロードに 1 分以上かかる場合があるため、アップロードが完了する前にユーザーが 2 番目のフォームを完了して送信すると、アップロードが中断されるという問題があります。
Amazon ではページへのリダイレクトが許可されているため、PHP_SELF にリダイレクトしているため、アップロードが完了すると、ユーザーは違いを認識しません。
私の質問は、アップロードが完了するまで、アップロードの進行状況を検出するか、div 2 の送信ボタンを無効にすることができるかどうかです。
私はほとんどのブラウザをサポートしたいので、CORS/.put() は実際にはオプションではありません。
また、Amazon に直接プッシュし、中間業者をスキップしている点も気に入っています。
私はもう試した:
isset($_POST)
リダイレクトでアップロードが完了したことを検出しますが、呼び出されることはなく、その理由はわかりません。
ブラウザはアップロードのパーセンテージ (ステータス バー) を表示します。これに接続する方法はありますか?