php チュートリアル ファイルのアップロード
PHP を使用してアップロードを管理する前に、まずファイルをアップロードするためのユーザー インターフェイスとして機能する HTML フォームを構築する必要があります
。以下の例を見て、編集可能な HTML コードを保存してください。
HTML フォームを作成する際には、従う必要があるルールがいくつかあります。まず、フォームで POST メソッドが使用されていることを確認します。次に、フォーム
には次の属性が必要です: 文字エンコーディング = "multiple/form-data"。サーバーに情報を送信するときに使用されるコンテンツ タイプを指定します。これらの要件がなければ、ファイルをアップロードできません。
もう 1 つ注意すべき点は、MAX_FILE_SIZE という名前の非表示のフォーム フィールドが値を設定することです。一部の Web ブラウザーは実際にこの領域を反映しており、ユーザーはこの数値 (バイト単位) を超えるファイルをアップロードできません。この値は、php.ini ファイルで設定された最大アップロード サイズと一致するように設定する必要があります。これは
upload_max_filesize とのセットで、デフォルト値は 2MB です。ただし、スクリプトが
インチを超えるファイルを配信しないという保証はありません。危険なのは、攻撃者がいくつかの大きなファイルのリクエストを送信し、PHP がデコードされたファイルを保存するファイル システムを埋めようとすることです。 php.ini の post_max_size ディレクティブを必要な最大ファイル サイズに設定します (upload_max_filesize より大きい必要があります)。デフォルト値は 10MB です。このディレクティブは、
要件内で許可される POST データの最大サイズを制御します。また、php.ini ファイルで
file_uploads が On に設定されていることを確認してください。
少なくとも、input タグには、type="file" というプロパティがあります。ファイル選択制御の入力
要素を指定するために使用されます。これにより、「参照」ボタンに入力する必要があるファイル URI が提供され、
URI 入力の代替として使用できます。
ユーザーがファイル URI を入力して送信ボタンをクリックすると、ファイルのコピーがサーバーに送信され、ユーザーは
Upload.php にリダイレクトされます。この PHP ファイルはフォーム データを処理します。
上に戻る
フォームデータの処理 (PHP コード)
ファイルがアップロードされ、PHP がファイルの一時コピーを作成し、ファイルに関する情報を含むスーパーグローバル変数 $_FILES 配列を設定します
。各ファイルには 5 つのデータがあります。
という名前のフィールドを「uploaded_file」としてアップロードしたため、次のデータが存在します:
変数 $_FILES ["uploaded_file"] ["name"] ユーザーのマシンからアップロードされたファイルの元の名前
変数 $ _FILES ["uploaded_file" "] ["type"] アップロードされたファイルの MIME タイプ (ブラウザがタイプを提供する場合)変数 $_FILES ["uploaded_file"] ["size"] アップロードされたファイルのサイズbytes
Variable$ _FILES ["uploaded_file"] ["tmp_name"]、サーバー上のファイルが一時的に保存される場所Variable $ _FILES ["uploaded_file"] ["error"] ファイルのアップロード結果からのエラー コード
以下の例では、アップロードされたファイルはアップロード ディレクトリに保存されます。 350Kb未満のJPEG
画像のみをアップロードできます。コード自体は一目瞭然ですが、少し説明します。見て保存する例があります
このPHPコードをupload.phpとして保存します。
//ファイルがあることを確認してください
== 0) ) {
//ファイルが JPEG 画像であり、そのサイズが 350Kb 未満であるかどうかを確認します
$ext = substr($filename, strrpos( $filename, '.') + 1);
if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg")
&&
( $_FILES["uploaded_file"]["size"] < 350000)) {
//このファイルの保存先のパスを決定します
サーバー上に既に存在するかどうかを確認します if (! File_exists ($ newname)) {
アップロード ファイルを次の場所に移動しようとします W Place (IF ((Move_uploaded_file ($ ( $ _FILES['アップロードされたファイル']
_ ['Tmp_name'], $ newname)) {
echo "実行しました! ファイルは次のように保存されました:"
} ELSE {
"Echo" エラー: アップロード中に発生しました!
}}} Else {
echo "エラー: ファイル". $ _ ファイル ["uploaded_file"] ["name"]. "Alream
}
} else {
echo "エラー: ファイルがアップロードされていません";
}
?>
ファイルをアップロードする前に、ファイルが実際に何かをアップロードしているかどうかを確認する必要があります。アップロードされたファイル (JPEG 画像) を確認したところ、そのサイズは 350Kb 未満でした。次に、このファイルを保存するパスを決定し、サーバー上にこれらのファイルの名前がすでに存在するかどうかを確認します。すべてのチェックに合格したら、
move_upload_file() 関数を使用してファイルを永続的な場所にコピーします。この機能は、処理する
ファイルがユーザーからアップロードされた正当なファイルであることも確認します。ファイルが正常にアップロードされると、対応する
メッセージが表示されます。
注: ファイルをコピーするディレクトリ内の一時ファイルの読み取りと書き込みが PHP で許可されていることを確認してください。
この例は、実際には PHP を使用してファイルをアップロードする方法を示すために提案されています。たとえば、
新しい条件を追加して、GIF や PNG 画像、または必要なその他の種類のファイルのアップロードを許可できます。このチュートリアルを初めて使用する場合
は、PHP の使用を開始するのに適した場所かもしれません。
http://www.bkjia.com/PHPjc/444978.html
www.bkjia.com
http://www.bkjia.com/PHPjc/444978.html