質問: ### 前提・実現したいこと 現在、jQuery+PHPを使用して画像の投稿システムを構築しています。 画像の投稿方法は2通りあり、1つ目はローカルのファイルを選択してアップロード 2つ目は画像ファイルのURLを指定してアップロードという方法です。 この2つの方法を使った画像のアップロード中に進捗率の表示をしたいと思ってます。 ### 試したこと 進捗率を表示するために$.ajaxファイルアップロードでプログレスバーを表示する。を参考にして構築したところ、ローカルファイル選択でのアップロードは問題なく進捗率が表示されました。 しかし2つ目のURL指定でのアップロードに関しては、PHP側の処理が100%にならないとレスポンスが返ってこない為?進捗率が正しく表示されません。 URL指定でのアップロードのPHP側の処理はfile_get_contentsで画像データを取得し、file_put_contentsでサーバーへアップロードするという簡単なものになっています。 ※サーバーでの重い処理の経過をリアルタイムに通知するなども参考にしましたが、今回の場合のような単一ファイルのアップロードの場合途中経過を返せないですよね...? このような状況で進捗率を表示するにはどうしたらいいでしょうか。 ご教授いただけると幸いです。
回答: file_get_contents()時にstream_context_create()で作成したコンテキストを適用すれば、進捗をハンドルすることが可能みたいです。 参考 後は、クライアントに通知しなければなりませんが、SSE等を可能なのではないでしょうか。 SSEライブラリ