ホームページ >バックエンド開発 >PHPチュートリアル >PHP はファイル アップロードと複数ファイル アップロードを実装します。_PHP チュートリアル
PHP プログラム開発において、ファイル アップロードは非常によく使用される機能であり、PHP プログラマーに必要なスキルの 1 つでもあります。幸いなことに、PHP でのファイル アップロード機能の実装は、Java や C# などの言語よりもはるかに簡単です。以下では、具体的なコード例を組み合わせて、PHP を介してファイル アップロードおよび複数ファイル アップロード機能を実装する方法を詳しく紹介します。
PHP を使用してファイル アップロード機能を実装するには、最初に 2 つの PHP ファイル、index.php と Upload.php を作成します。このうち、index.php ページはファイルのアップロードのフォーム要求を送信するために使用され、upload.php ページはアップロードされたファイルを受信してそれに応じて処理するために使用されます。
まず、簡単なindex.phpファイルを書きましょう。主にHTMLコードを使用するため、詳細は説明しません。index.phpページの詳細なコードは次のとおりです。 リーリー
HTTP プロトコルは当初設計されたため、ファイルのアップロード機能をサポートしていないことに注意してください。フォームの暗号化属性のデフォルト値は application/x-www-form-urlencoded のみです。一般的なフォームを提出してください。送信されたフォームにアップロードが必要なファイルが含まれている場合、ファイル アップロード機能を実装するには、enctype 属性値を multipart/form-data に変更する必要があります。さらに、メソッドの属性値は post である必要があります。次に、upload.php ファイルのコードを書き続けます。
リーリー
PHP では、ブラウザ クライアントによって送信されたフォーム リクエストにアップロードされたファイルが含まれている場合、PHP はアップロードされたファイルを一時ディレクトリ (Windows オペレーティング システムでは、通常、デフォルトの一時ディレクトリは C: /Windows/Temp) に保存します。次に、アップロードされたファイルの関連情報をスーパー グローバル変数 $_FILES に保存します。したがって、$_FILES 配列を通じてアップロードされたファイル情報を取得し、それに対して対応する処理操作を実行するだけで済みます。次に、ブラウザ経由で 2 つの画像ファイル A.gif と B.gif をアップロードするときに、print_r() 関数を使用してスーパー グローバル変数 $_FILES を出力する詳細を見てみましょう。 リーリー上記の例では、アップロードした 2 つのファイルのパラメータ名は、upload_file1 と Upload_file2 です。ここで、フォーム内の複数のファイルに同じパラメータ名 Upload_file を使用させ、アップロードしたばかりの 2 つのファイルをパラメータ配列の形式でアップロード用に再送信します。現時点では、index.php ページの 2 つのファイル フィールドを次の HTML コードに変更する必要があります:
同様に、上記の例では、print_r() 関数を使用して、スーパー グローバル変数 $_FILES の詳細を表示します。 リーリー
注1: PHPのデフォルト設定では、アップロードしたファイルのサイズが一定の範囲を超えるとエラーが発生します。詳細は、末尾に記載されているPHPのアップロードファイルのサイズ制限を変更する方法の問題の解決方法を参照してください。記事。注 2: ファイルのアップロードを処理するための上記の PHP コードは、単純な導入例にすぎず、正式なコードとして直接使用することはできません。ファイル タイプ、ファイル サイズ、ファイル タイプなど、考慮されていない追加の注意が必要なセキュリティ要素が多数あるためです。アップロードされたファイルなど。
注3:アップロードするファイル名に漢字が含まれる場合、ファイル名が文字化けする可能性があります。このとき、iconv()関数を使用してファイル名のエンコードを変換する必要があります。
以前は、PHP を使用してファイルのアップロードと複数のファイルのアップロードを実装する方法を学びました。ただし、PHP のデフォルト設定では、アップロードされたファイルのサイズが特定の制限を超えると、次のエラー メッセージが表示されます:
リーリー
上記は、php ファイルアップロード機能の実装に役立つこの記事の全内容です。
興味がありそうな記事: