ホームページ バックエンド開発 PHPチュートリアル php_PHPチュートリアルでのファイルのアップロードの詳細な説明

php_PHPチュートリアルでのファイルのアップロードの詳細な説明

Jul 13, 2016 pm 05:53 PM
html php アップロード ホスト 関数 そして 対処する 書類 使用 構成 詳しい説明 一部 ページ

ファイルのアップロード機能は、HTML ページと PHP 処理部分の 2 つの部分で構成されます。 HTML ページでは主に、ユーザーがアップロードするファイルを選択でき、PHP 部分ではサーバー上の指定されたディレクトリにファイルを保存できます。
1つ。 HTML部分
アップロード.html
[html]
<html>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> </頭>
デモをアップロード:
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="img" /> <input type="submit" name="submit" value="Upload" />                                                                     </本文> </html> 説明:
1. Input タグ内の Type="file" は、入力がファイルとして処理されることを示します。
2.Enctype は、このフォームを送信するときに使用するコンテンツ タイプを指定します。ファイルコンテンツなど、フォームにバイナリデータが必要な場合、ファイルをアップロードする場合は、この属性が必要です。
enctype の詳細については、「HTML <form> タグの enctype 属性」を参照してください

2つ。 PHPの部分
アップロード.php
[php]
<?php
$DST_DIR = '/データ/アップロード/'; if ($_FILES['img']['name'] != '') {
If ($_FILES['img']['error'] > 0) {
「アップロードに失敗しました」をエコーし​​ます
}

他に{

If (move_uploaded_file($_FILES['img']['tmp_name'], $DST_DIR.$_FILES['img']['name'])) {
エコー「アップロード成功」
; }
その他 {
「アップロードに失敗しました」をエコーし​​ます
}
}
}
他 {
echo "ファイルをアップロードしてください"; }
説明:
1. グローバル変数 $_FILE
この配列には、アップロードされたすべてのファイルに関する情報が含まれています。
上の例に示すように、ファイル アップロード フィールドの名前が img であると仮定します。それでは
$_FILES['img']['name']
クライアントによってアップロードされたファイルの元の名前。
$_FILES['img']['type']
ファイルの MIME タイプ (ブラウザーがこの情報を提供する場合)。例は「画像/gif」です。ただし、この MIME タイプは PHP 側ではチェックされないため、鵜呑みにしないでください。 $_FILES['img']['size']: アップロードされたファイルのサイズ (バイト単位)。
$_FILES['img']['size']
アップロードされたファイルのサイズ (バイト単位)。
$_FILES['img']['tmp_name']
ファイルのアップロード後にサーバーに保存される一時ファイル名。
$_FILES['img']['error']
ファイルのアップロードに関連するエラー コード。

2.エラーコードについて
$_FILES['img']['error'] には次の種類があります
アップロード_エラー_OK
値が 0 の場合、エラーは発生せず、ファイルは正常にアップロードされました。
UPLOAD_ERR_INI_SIZE
値が 1 の場合、アップロードされたファイルは php.ini の Upload_max_filesize オプションの制限を超えています。
UPLOAD_ERR_FORM_SIZE
値が 2 の場合、アップロードされるファイルのサイズは、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えます。
アップロード_エラー_部分
値が 3 の場合、ファイルは部分的にのみアップロードされます。

UPLOAD_ERR_NO_FILE

その値は 4 で、ファイルはアップロードされませんでした。
UPLOAD_ERR_NO_TMP_DIR
値は 6 ですが、一時フォルダーが見つかりません。 PHP 4.3.10 および PHP 5.0.3 で導入されました。
UPLOAD_ERR_CANT_WRITE
その値は 7 で、ファイルの書き込みは失敗しました。 PHP 5.1.0で導入されました。

3.アップロードされたファイルの移動
ファイルがアップロードされると、ファイルはデフォルトでサーバーのデフォルトの一時ディレクトリに保存され (php.ini の Upload_tmp_dir が別のパスに設定されていない限り)、ファイル名はランダムです。ファイルが移動または名前変更されていない場合、そのファイルはフォーム要求の最後に削除されます。したがって、一時ファイルは move_uploaded_file を通じて移動する必要があります。
実験後、move_uploaded_file の機能を copy で完了することもできます。 move_uploaded_file を使用する理由は何ですか? move_uploaded_file は、コピーによって引き起こされるセキュリティ上の脆弱性を防ぐために、アップロードされたファイルに対していくつかのチェックを行うと言われています。しかし、コピーすると具体的にどのような問題が生じるのでしょうか?見つかりませんでした。知り合いの生徒がいたらメッセージを残してください。
とにかく、PHP が特定の関数を与えているのですから、それは意味があるはずなので、まずはこのように使ってみましょう。

3.セキュリティチェック
$_FILES['img']['size'] と $_FILES['img']['type'] を使用して、アップロード タイプの制限、アップロード ファイル サイズなど、アップロードされたファイルのセキュリティ チェックを行うことを検討できます。 。

作者;qmhball

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478030.html技術記事ファイルのアップロード機能は、HTML ページと PHP 処理部分の 2 つの部分で構成されます。 HTML ページでは主にユーザーがアップロードするファイルを選択でき、php 部分ではファイルをサーバーに保存できます...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

HTML テーブルのレイアウト

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles