質問 > その他 > ファイルアップロードの進捗状況が取得できません(session.upload_progress) |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nicky |
投稿日時: 2021/5/11 12:08
対応状況: −−−
|
新米 登録日: 2021/3/26 居住地: 投稿: 5 |
ファイルアップロードの進捗状況が取得できません(session.upload_progress) [EC-CUBE] 4.0を新規インストール
[レンタルサーバ] SAKURA VPSの最小構成 [OS] CentOS 8 [PHP] 7.3.27 [データベース] Ver 14.14 Distrib 5.7.33 [WEBサーバ] Apache/2.4.6 [ブラウザ] Google Chrome 89.0.4389.90(Official Build) (64 ビット) [導入プラグインの有無] なし [カスタマイズの有無] あり(Controller, Entityの追加程度です) [現象] ファイルアップロードの機能にて、大きいサイズのファイルを登録するケースがある為、 アップロード時に進捗状況を表示したいと思っているのですが、進捗状況を取得する事が出来ません。 php.iniを編集し、session.upload_progress.* を全て有効化しました。 httpd は restart 済みです。 session.upload_progress.enabled = On session.upload_progress.cleanup = On session.upload_progress.prefix = "upload_progress_" session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" session.upload_progress.freq = "1%" session.upload_progress.min_freq = "1" session.lazy_write = On twigファイルのform内に、進捗状況用のhidden項目を追加しました。 ※name属性が変わってしまう為、FormTypeで定義せず直書きしています。 <form name='uploadForm' method='POST' action='{{ url('file_upload') }}' enctype='multipart/form-data'> {{ form_widget(form._token) }} <input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="123" /> <div> {{ form_widget(form.fileData) }} <!-- input type=file --> </div> <div> <input type="submit" value="submit"> </div> </form> 検証用なので最小限のみ記述しています。 formのsubmit後、JavaScriptで進捗状況を取得するコントローラを非同期で実行しています。 $("form").submit(function() { var f = function() { $.getJSON("./upload/progress", function(data) { console.log(data); if (!data["done"]) { setTimeout(f, 200); } }; setTimeout(f, 1000); console.log("submit"); }); 進捗状況を取得するControllerは、取り敢えず確認だけしたかったので セッションの中身を全て返すようにしています。 public function progress(Request $request) { return $this->json($_SESSION, 200); } 以上の状態でsubmit後、セッションの中身を確認したのですが、 キー値"upload_progress_123"が存在しませんでした。 何らかの設定等が不足していると思うのですが、ご存知の方がいらっしゃいましたら教えて頂けると幸いです。 以上、宜しくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |