ホームページ  >  記事  >  バックエンド開発  >  PHP におけるアップロードされたファイルの処理の問題の解釈、_PHP チュートリアル

PHP におけるアップロードされたファイルの処理の問題の解釈、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:50:59967ブラウズ

PHP でのアップロードされたファイルの処理の解釈、

ブラウザで自分の情報を編集するとき、アバターのアップロードに遭遇します;ライブラリでは、ドキュメントをアップロードします...「アップロード」という言葉はどこにでも存在します。

PHPは最高の言語です(他の言語のプログラマの方、私を叩かないでください…)。 PHP にはインタラクションの処理において当然の利点があり、アップロードされたファイルを処理するための強力な機能も当然備わっています。

一般的なデータの送信と同様に、ファイルのアップロードにもフォームが必要です。ファイルをアップロードするための特別なフォームを作成しましょう。

リーリー

それでは、このコードスニペットを分析してみましょう。

上記のenctypeは、データをサーバーに送信する際に使用するエンコード形式を指定します。 3 つの値があります:

MAX_FILE_SIZE 隠しフィールド (単位はバイト) はファイル入力フィールドの前に配置する必要があり、その値はファイルの最大サイズです。これはブラウザに対する提案であり、PHP もこれをチェックします。このバリアはブラウザ側でバイパスできるため、大きなファイルをブロックするためにこれを使用することは期待しないでください。ただし、最大ファイルサイズは php.ini の post_max_size= (number)M によって制限されます。ただし、この項目を追加すると、ユーザーが大きなファイルをアップロードするのに時間を費やしてから大きなファイルのアップロードに失敗したというトラブルを回避できます。 ユーザーがファイルフォームを送信すると、サーバーはデータを受け入れることができます。 PHP にはファイルを処理するためのグローバル変数

$_FILES

があり、アップロードフィールド名は userfile であるとします (フィールド内で自由に変更できます)。 $_FILES['userfile']['name'] クライアントファイルの元の名前。

$_FILES['userfile']['type'] ファイルの MIME タイプは PHP 側でチェックされないため、この値はまだ存在しない可能性があります。

$_FILES['userfile']['size'] アップロードされたファイルのサイズ (バイト単位)。
$_FILES['userfile']['tmp_name'] ファイルのアップロード後にサーバー側に保存される一時ファイル名。
$_FILES['userfile']['error'] ファイルのアップロードに関連するエラー コード。アップロードが成功した場合、値は 0 になります。

ファイルがアップロードされると、デフォルトではサーバーのデフォルトの一時ディレクトリに保存され、php.iniのupload_tmp_dirは別のパスに設定されます。

ここで move_uploaded_file() 関数について説明する必要があります:

この関数は、file で指定されたファイルが正当なアップロード ファイル (つまり、PHP の HTTP POST アップロード メカニズムを通じてアップロードされたファイル) であることをチェックし、保証します。ファイルが正当な場合、そのファイルは newloc で指定されたファイルに移動されます。

ファイルが合法的にアップロードされたファイルではない場合、操作は行われず、move_uploaded_file() は false を返します。

ファイルが正当にアップロードされたファイルであるが、何らかの理由で移動できない場合、アクションは発生せず、move_uploaded_file() は false を返し、警告が発行されます。

この種のチェックは、アップロードされたファイルによってそのコンテンツがこのシステムのユーザーまたは他のユーザーに表示される可能性がある場合に特に重要です。

以下は、php でファイルをアップロードする例です:

リーリー

http://www.bkjia.com/PHPjc/1133052.html

本当http://www.bkjia.com/PHPjc/1133052.html技術記事 PHP でアップロードされたファイルの処理を解釈します。ブラウザーで自分の情報を編集するときは、アバターのアップロードに遭遇します。ライブラリでは、ドキュメントをアップロードします...「アップロード」はどこにでも存在します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。