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

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

Jul 15, 2016 pm 01:26 PM
php post 優れた アップロード 導入 勉強 意思 書類 方法 時間 会う 質問

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">&lt;!-- The data encoding type, enctype, MUST be specified as below --&gt;</font></span><span> </span></span></li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag">&lt;</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>&gt;</span></font></strong><span> </span>
</li>
<li class="alt">
<span></span><span class="comments"><font color="#008200">&lt;!-- MAX_FILE_SIZE must precede the file input field --&gt;</font></span><span> </span>
</li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag">&lt;</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>/&gt;</span></font></strong><span> </span>
</li>
<li class="alt">
<span>&lt;!-- Name of input element determines name in --</SPAN><SPAN class=tag><STRONG><FONT color=#006699>&gt;</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 までご連絡ください。

ホットな記事タグ

メモ帳++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:25 PM

CakePHP プロジェクトの構成

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

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

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 クイックガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

See all articles