この記事では、人気の Zend フレームワークを使用して、アップロードするファイルを簡単に受信、確認、処理できる独自のファイル アップロード メカニズムを作成する方法を詳しく紹介します。
1. はじめに
YouTube でビデオを管理する場合でも、SlideShare で PowerPoint プレゼンテーションを共有する場合でも、オープンソースの電子商取引プラットフォーム Magento を使用してオンライン ストアで商品画像を更新する場合でも、私たちは皆、Web ベースのファイル アップロード機能を使用します。しかし、この機能は具体的にどのように機能するのでしょうか? ファイルはローカル マシンからリモート サーバー にどのように転送されるのでしょうか? この記事では、人気の Zend フレームワークを使用して、簡単に実行できる独自のファイル アップロード メカニズムを作成する方法を説明します。アップロードするファイルを受信、確認、処理します。
2. ファイルのアップロードを処理するように PHP を設定します
PHP 自体は Web フォームを通じてファイルのアップロードを完了できますが、標準の PHP コードを使用する場合でも、Zend フレームワークを使用してファイルのアップロードを管理する場合でも、PHP の関連機能に直接影響する構成ディレクティブを検出するために時間を費やす必要があります。これらの手順には次のようなものがあります。
- file_uploads: このディレクティブは、PHP のファイルアップロード機能を有効にします。デフォルトでは、このディレクティブは有効になっています。
- upload_max_filesize: このディレクティブは、アップロードするファイルの最大サイズを定義します。デフォルトでは、このディレクティブは 2M に設定されています。
- upload_tmp_dir: このディレクティブは、PHP がアップロードするファイルを一時的に保存するディレクトリを定義します。ファイルは、最終的な宛先に渡される前に、ここに一時的に保存されます。デフォルトでは、このディレクティブは値を割り当てません。つまり、PHP はシステムのデフォルト値を使用します。たとえば、多くの Linux ディストリビューションの一時ディレクトリは /tmp です。
post_max_size: POST データに許可される最大サイズを設定します。 PHP のデフォルトの post_max_size は 2M です。
- max_execution_time: ファイルのアップロードとはあまり関係がありませんが、このディレクティブは PHP スクリプトの実行時間を定義するため、PHP のファイル アップロード機能において重要な役割を果たします。サイズが特に大きいファイルの場合、ファイル
server- への転送に長い時間がかかる可能性があるため、このディレクティブのデフォルト値を 30 秒から 60 秒、さらには 90 秒に変更することを検討できます。
3. ファイルアップロードフォームを作成します
以下では、ローカル コンピューターのファイル システムを参照し、アップロードするファイルを決定するために使用できるサンプル Web フォームを作成します。この例は単純にして、図 1 のようなファイル アップロード フォームを作成してみます。
図 1 単純なファイルアップロードフォーム
このフォームの作成方法は、以前に作成した他のフォームと似ていますが、若干の違いがあります。このフォームの作成に使用される HTML コードをリスト 1 に示します。 Zend Framework の規則に従って、このフォームを、admin という名前のコントローラのアップロード アクションの一部である、upload.phtml という名前のビューに配置します。
=" /admin/upload">
<p>
どの ファイルをアップロードしますか?<br />
<
入力タイプ=「ファイル
」名前=「ビデオアップロード」サイズ
=「40」 「/>」
p>
<p>
<入力タイプ
="送信"名前
="送信"
クラス="送信 "値="ビデオをアップロード" />
p>
フォーム>
リスト 1 ファイルアップロードフォームの HTML コード
このフォームには、特別な注意が必要なコードが 2 つあります:
- enctype="multipart/form-data": Web フォームを使用して大量のバイナリ データを送信する場合は、このフォーム属性を使用する必要があります。スプレッドシートやビデオなどのファイルには大量のバイナリ データが含まれているため、ファイル アップロード フォームを作成するときにこの属性を含める必要があります。
-
<入力タイプ="ファイル"名="video-upload"
http://www.bkjia.com/PHPjc/486448.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/486448.html技術記事この記事では、人気の Zend フレームワークを使用して、アップロードするファイルを簡単に受信、確認、処理できる独自のファイル アップロード メカニズムを作成する方法を詳しく紹介します。 ...