ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでファイルをアップロードするための POST メソッドの賢い使用法

PHP_PHP チュートリアルでファイルをアップロードするための POST メソッドの賢い使用法

WBOY
WBOYオリジナル
2016-07-15 13:26:481076ブラウズ

PHPを学習するとき、PHPアップロードの問題に遭遇する可能性があります。ここでは、PHPアップロードの問題の解決策を紹介し、ここで共有します。この機能を使用すると、ユーザーはテキスト ファイルとバイナリ ファイルをアップロードできます。 PHP の認証機能とファイル操作機能を使用すると、誰にアップロードを許可するか、および PHP によってアップロードされたファイルをアップロード後にどのように処理するかを完全に制御できます。 PHP は、Netscape Composer と W3C の Amaya クライアントで使用されるファイル アップロードの PUT メソッドもサポートしていることに注意してください。

例 1. ファイル アップロード フォーム

次のようにファイル アップロードをサポートする特別なフォームを作成できます:

<ol class="dp-xml">
<li class="alt"><span><span class="comments"><font color="#008200"><!-- The data encoding type, enctype, MUST be specified as below --></font></span><span> </span></span></li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>form</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>enctype</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"multipart/form-data"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>action</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"__URL__"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>method</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"POST"</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong><span> </span>
</li>
<li class="alt">
<span></span><span class="comments"><font color="#008200"><!-- MAX_FILE_SIZE must precede the file input field --></font></span><span> </span>
</li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>input</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"hidden"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>name</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"MAX_FILE_SIZE"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"30000"</FONT></SPAN><SPAN> </SPAN><SPAN class=tag><STRONG><FONT color=#006699>/></span></font></strong><span> </span>
</li>
<li class="alt">
<span><!-- Name of input element determines name in --</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span><span> </span>
</li>
</ol>

PHP アップロード POST メソッド Upload

この機能により、ユーザーはテキスト ファイルとバイナリ ファイルをアップロードできます。 PHP の認証機能とファイル操作機能を使用すると、誰にアップロードを許可するか、アップロード後にファイルをどうするかを完全に制御できます。 PHP は、RFC-1867 標準に準拠する任意のブラウザ (Netscape Navigator 3 以降、およびパッチ適用された Microsoft Internet Explorer 3 以降を含む) からアップロードされたファイルを受け入れることができます。 PHP は、Netscape Composer と W3C の Amaya クライアントで使用されるファイル アップロードの PUT メソッドもサポートしていることに注意してください。

例 2. ファイル アップロード フォーム

次のようにファイル アップロードをサポートする特別なフォームを作成できます:

<ol class="dp-xml"><li class="alt"><span><span>___FCKpd___0 </span></span></li></ol>

上記の例の __URL__ は、実際の PHP ファイルを指すように置き換える必要があります。

MAX_FILE_SIZE 隠しフィールド (単位: バイト) はファイル入力フィールドの前に配置する必要があり、その値は受信したファイルの最大サイズです。これはブラウザに対する推奨事項であり、PHP もこれをチェックします。この設定はブラウザ側で簡単にバイパスできるため、この機能を使用して大きなファイルをブロックすることは期待しないでください。実際、PHP 設定の最大アップロード ファイル サイズは期限切れになりません。ただし、この項目をフォームに追加することをお勧めします。これにより、ユーザーが大きなファイルのアップロードを待って時間を費やした後に、ファイルが大きすぎてアップロードに失敗したというトラブルを回避できます。注: ファイル アップロード フォームの属性が enctype="multipart/form-data" であることを確認してください。そうしないと、ファイルをアップロードできません。

グローバル変数 $_FILES は、PHP 4.1.0 以降に存在します (以前のバージョンでは $HTTP_POST_FILES に置き換えられました)。この配列には、アップロードされたすべてのファイルに関する情報が含まれています。上記の例の $_FILES 配列の内容は次のとおりです。上の例に示すように、ファイル アップロード フィールドの名前が userfile であると仮定します。名前は何でも構いません。

<ol class="dp-xml"><li class="alt"><span><span>$_FILES['userfile']['name'] </span></span></li></ol>

クライアント マシン ファイルの元の名前。

<ol class="dp-xml"><li class="alt"><span><span>$_FILES['userfile']['type'] </span></span></li></ol>

ファイルの MIME タイプ (ブラウザーがこの情報を提供する場合)。例は「画像/gif」です。ただし、この MIME タイプは PHP 側ではチェックされないため、鵜呑みにしないでください。

<ol class="dp-xml"><li class="alt"><span><span>$_FILES['userfile']['size'] </span></span></li></ol>

アップロードされたファイルのサイズ (バイト単位)。

<ol class="dp-xml"><li class="alt"><span><span>$_FILES['userfile']['tmp_name'] </span></span></li></ol>

ファイルのアップロード後にサーバーに保存される一時ファイル名。

<ol class="dp-xml"><li class="alt"><span><span>$_FILES['userfile']['error'] </span></span></li></ol>

ファイルのアップロードに関連するエラー コード。このプロジェクトは PHP バージョン 4.2.0 で追加されました。ファイルがアップロードされると、php.ini の Upload_tmp_dir が別のパスに設定されていない限り、ファイルはデフォルトでサーバーのデフォルトの一時ディレクトリに保存されます。サーバー側のデフォルトの一時ディレクトリは、PHP 実行環境の環境変数 TMPDIR を変更することでリセットできますが、PHP スクリプト内で putenv() 関数を実行して設定しても効果はありません。この環境変数は、アップロードされたファイルに対して他の操作も実行されていることを確認するために使用することもできます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446564.html技術記事 PHPを学習していると、PHPアップロードの問題に遭遇することがあります。ここでは、PHPアップロードの問題の解決策を紹介し、ここで共有します。この機能により、ユーザーはテキストをアップロードして...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。