PHP V5.2 には、開発者がファイルのアップロードの進行状況をリアルタイムで追跡する機能を活用するためのフックが追加されています。 「PHP V5.2 の新機能」に関する 5 部構成のシリーズの第 5 部であるこの記事では、ファイルのアップロードを監視し、それに応じてコーディングする方法と、PHP プログレス バーを作成する方法を説明します。
Web 2.0 はインターネット上で最もホットなバズワードであり、投資家はこのテクノロジーに関連する投資プロジェクトに資金を注ぎ込んでいます。何百万もの Web サイトやアプリケーションをカバーする記述用語が多数あります。 Web 2.0 を使用して、インターネット上の何百万ものユーザーの声へのアクセスを提供する Web サイトのクラスについて説明します。これらのサイトの特徴は、ユーザーが共通の関心事に関連するアイデアやデータをコミュニケーションおよび共有するための場所を提供しており、これらのサイトは大量のコンテンツを迅速に生成できることです。
各ユーザーは、コーヒーショップのレビュー、通勤ルートなど、何らかのコンテンツを提供します。 YouTube はその好例で、人々がビデオをアップロードし、他のユーザーがそれを閲覧してフィードバックを提供できるスペースを提供しています。 YouTube は Web 2.0 愛好家の新たなお気に入りであり、その人気がこれまでのところインターネット上の他のサイトよりも速く高まっていることは注目に値します。この人気の理由は、コンテンツの多様性と、ユーザーがコメントの形でコンテンツについての意見を表明できることによるものと考えられます。また、メッセージを残すだけでなく、ユーザーはビデオに対応するビデオメッセージをアップロードすることもできます。
テキストフィールド
ファイルを受け入れる Web サイトの多くは、テキスト ボックスの横に迷惑な [参照] ボタンを配置し、ユーザーは一度に 1 つのファイルをアップロードする必要があります。特にビデオや写真、その他のアイテムを小さなファイル グループの形式で提供する場合は、時間がかかることがあります。各ファイルを個別にアップロードする必要があるため、これは面倒な場合があります。非常に大きなファイルのアップロードにかかる時間は、せっかちなユーザーにとって耐えられないものであると想定すると、ユーザーが諦めて立ち去ってしまうのを防ぐために、ポジティブなフィードバックを提供することが重要です。
幸いなことに、PHP V5.2 のファイルアップロードプロセスに導入された新しいフックにより、アップロードの進行状況をリアルタイムでユーザーに表示できるようになりました。この記事では、PHP V5.2 を使用して、ユーザー用の進行状況バーを作成します (ソース コードを入手するには、クリックしてダウンロードします)。
完全な説明
PHP V5.2 の新しい「フック」は、実際には、正しいライブラリがインストールされ構成されている場合に、ファイル転送中に利用できるデータ ポイントです。これらの新しいフックは、代替 PHP キャッシュと呼ばれる機能を使用します。 PHP スクリプトがアップロードされたファイルを受信すると、インタプリタは $_POST 配列で APC_UPLOAD_PROGRESS という隠しフィールドがないか自動的にチェックします。このフィールドは、スクリプトがアップロードされたファイルにアクセスできるように、アップロードに関する情報を格納するキャッシュ変数になります。この情報がキャッシュされ、すぐにアクセスできる場合、視覚的なフィードバックをユーザーに提供できるため、ユーザー エクスペリエンスが向上します。
HTML フォームでの APC コードの実装、PHP での実装を識別する方法、キャッシュされた情報にアクセスする方法を紹介します。このデータを表現するには、Ajax から FLEX までさまざまな方法がありますが、ここで注目したいのは、これらのフロントエンド テクノロジがデータにアクセスするために必要なメソッドを準備することです。
設定
デフォルトでは、PHP V5.2 の APC は有効になっていません。新しいフックは APC の一部であるため、拡張機能がインストールされ、PHP インタープリターで使用できるようにする必要があります。これを行うには、php_apc 拡張ファイルをダウンロードします。この例では、Apache と MySQL を含む Windows® 用の無料パッケージ PHP である WAMP インストールを使用します。ユーザーフレンドリーなインターフェイスを提供し、構成オプションをサポートするメニューのおかげで管理が非常に簡単です。
WAMP で APC を設定するには、次の手順に従います:
ライブラリと WAMP をダウンロードするには、「リソース」を参照してください。
WAMPをインストールします。
php_apc.dllファイルをPHP拡張フォルダに置きます。デフォルトでは、このフォルダーは
システムディスクの WAMP メニューを使用して、[PHP 設定] > [PHP 拡張機能] > [拡張機能の追加] を選択します。
ポップアップのコマンドラインインターフェイスで、「php_apc.dll」と入力してEnterを押します。
テキスト エディターを使用して、
PHPを再起動します。
これで、APC がセットアップされ、初期化されるはずです。 APC の RFC1867 機能 (ファイルのアップロードを追跡できる機能) がオプションとして有効になり、ファイルのアップロードを調べてライブ ステータスを有効にする準備が整ったはずです。
ファイルを受信できるアカウント
ファイルを受信するには、まずファイルを受信するためのフォームを設定する必要があります。便利なことに、HTML にはドキュメント用の標準フィールド タイプが付属しています。すべての HTML フォーム フィールドと同様に、論理的にファイル タイプの名前が付けられます。デフォルトでは、ブロックの右側に表示される便利な参照ボタンが付属しています。
リスト1.upload.phpのHTML形式
リーリー
アップロードを追跡するには一意のキーが必要なので、このフォーム用に PHP ページを作成する必要があります。最後に、このページを GET 値として呼び出すために使用される URL の一部になります。この数値は、後で取得される APC キャッシュ エントリ キーの値になります。この値を渡すには、フォーム フィールドに、ファイルのアップロード ステータスを保存する必要があることを APC に知らせる特別な名前を持つ隠しフィールドが必要です。このフィールドは APC_UPLOAD_PROGRESS と呼ばれます。これは、キャッシュ プロセスを開始する前述のフックです。 PHP がキャッシュ内の正しいエントリにアクセスできるようにするために、取得した一意の ID を隠しフィールドの値として使用し、その値のキーを作成します。ユーザーがフォームを送信すると (送信ボタンについては簡単に説明します)、ブラウザーはファイルとキーを POST データの一部としてサーバーに送信します。
。