⭐️Session Upload Progress

ファイルのアップロード中に、PHP が進捗を $_SESSION に書き込む機能。別のリクエストで読めばプログレスバーが作れる。

  • multipart(multipart/form-data): 1 回の POST の本文を区切り文字で分け、テキストとファイルを一緒に送る形式。アップロードのフォームで使う
① ブラウザ: ファイルと一緒に「受付番号 123」を送る(multipart の POST)

② PHP 本体: 受け取りながら、セッションに進捗をメモしていく
     「123 番: 100MB 中 40MB 受信済み」

③ ブラウザ: 別のリクエストで「123 番どう?」と聞く → 40% と表示
  • 受付番号は PHP_SESSION_UPLOAD_PROGRESS という名前の隠しフィールドで送る(ファイルより前に置く)

  • ② はアプリのコードが動く前に PHP 本体がやる

  • デフォルトで有効(session.upload_progress.enabled=1)。アプリが使っていなくても PHP 本体が勝手に動く

  • php2shell の 109619 の経路。使わないなら session.upload_progress.enabled=0

参考: https://www.php.net/manual/en/session.upload-progress.php