PHP でアップロードの進行状況バーを実装するのが難しい理由は、サーバーにファイルをアップロードするときに、対応する PHP ファイルを実行する前に、すべてのファイルがサーバーに送信されるまで待機する必要があるためです。これまでは、ファイル データは一時ファイルに保存されており、PHP はこのファイルのパスとサイズを取得できませんでした。
Actionscript 2.0 以降、Flash はファイルのアップロードとダウンロードをサポートします。サーバー側でファイルのアップロードの進行状況を取得することはできませんが、サーバー側でファイルの送信の進行状況を取得することができます。この原則に基づいて、Flash を使用してアップロードの進行状況バー効果を作成できます。
インターネットでいくつかの情報を見ましたが、欠陥があると感じます。そこで私は自分で調査を行い、以前のプログラムに基づいてプログラムのセキュリティと堅牢性を強化し、カスタマイズ可能なパラメータをいくつか追加しました。
注: コンピューターにファイアウォール ソフトウェアがインストールされている場合は、すぐに 100% に達する進行状況バーが表示されることがあります。これは、進行状況バーがファイアウォール ソフトウェアへのファイルのフラッシュ転送速度を示しているためです。ファイアウォールはデータもサーバーに渡します。
デモンストレーションについては、ここをクリックしてください
このプログラムは、関連するオンライン情報に基づいて Longbill によって改良されました
http://www.longbill.cn
電子メール: longbill.cn@gmail.com
パラメータの呼び出し手順 (名前を想定)
フラッシュ ファイルの呼び出しアドレスを次のように記述します:
upload.swf?maxsize=[単一ファイルの最大サイズ]&bgcolor=[プログレス バーの色]
&limit=[アップロード ファイルの制限] type]&savefile=[アップロード対象ファイル]
[単一ファイルの最大サイズ]: [オプション] [数値] (単位はKB)
[プログレスバーの色]: [オプション] [6桁の16進数] [デフォルトはランダムな色です] (# のない 16 ビットのカラー値)
[アップロード ファイルの種類を制限する]: [オプション] 形式は、limit=zip|rar|doc などです。
[オブジェクト ファイルをアップロードする]: [デフォルトは save.php] [文字列]
例:
upload.swf?maxsize=2048&bgcolor=FF00FF&limit=jpg|gif|png&savefile=upsave.php
パッケージ ファイルのダウンロード