BLOG
Webエンジニア2025年新卒採⽤ BRISKは新卒からリモートワークです。

PHPでのアップロード中の進捗バーの出し方

更新日:2017/02/28

PHPでの大容量ファイルのアップロードについては、前回まとめました。
大容量ファイルをアップロードするには時間がかかるので、今度はアップロードの進捗を知りたくなるのが人間ってヤツです。
しかし、PHPではアップロード完了後にスクリプトを実行するためアップロード中の状況を表示させたり、ということは基本的にはできません。

しかし、Alternative PHP Cache (APC)を利用することにより実装できます。
loading_bar

やり方としては、phpで書かれたアップロード用フォームで大容量ファイルをアップロードしている最中に、iframe内のphpファイルが定期的に監視してやる、というものです。
以下では、APCのインストールが済んでいる状況で、進捗バーの実装の手順を説明します。

1、まずアップロード用フォームの書かれたPHPファイルを作成する。

2、アップロードするためのフォームの中に以下の要素を追加する。
  iframeは、進捗バーを表示させる部分です。

upload.php

3、javaScriptで、iframe内のphpの呼び出しと進捗バーの表示に関する設定する。

upload.php

4、iframe内のphpファイルの作成をする。

upload_frame.php

これで、ファイルをアップロードすれば、進捗バーを表示することができます。

ちなみに、PHP5.4以降は、APCをインストールしなくても、アップロードの進捗状況を取得し表示することができるようです。

南本貴之

FOLLOW US