ホームページ  >  記事  >  バックエンド開発  >  ファイル関数を使用して PHP ファイル アップロード ケースの分析を実装する_PHP チュートリアル

ファイル関数を使用して PHP ファイル アップロード ケースの分析を実装する_PHP チュートリアル

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

あなたがコンピューター愛好家で PHP を知らない場合は、PHP の関連知識を知りたい場合は、PHP ファイルのアップロードの実装を見てみましょう。このコードは 2 つのファイルに分割されており、1 つは Upload.html で、もう 1 つは Upload.php です。

<ol class="dp-xml">
<li class="alt">
<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>"upload.php"</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> </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>"100000"</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong><span> </span>
</li>
<li class="alt">
<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>name</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"userfile"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"file"</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong><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>"submit"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"上传文件"</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong><span> </span>
</li>
<li class="alt">
<span></span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>form</SPAN><SPAN class=tag>></span></font></strong><span> </span>
</li>
</ol>

このうち、
に注意してください。ファイルをアップロードする場合は、multipart/form と指定する必要があります。 - データ、そうでない場合、サーバーは何をすべきかわかりません。ファイル Upload.html のフォーム オプション MAX_FILE_SIZE の非表示の値フィールドは、値を設定することでアップロードされるファイルのサイズを制限できることに注意してください。 MAX_FILE_SIZE の値はブラウザに対する単なる提案であり、実際には簡単に回避できます。したがって、ブラウザの制限を制限するためにこの値に依存しないでください。実際、PHP 設定の PHP ファイルアップロードの最大値は無効になりません。ただし、フォームに MAX_FILE_SIZE を含めたほうがよいでしょう。ユーザーは、大きなファイルがアップロードされるのを待って時間を費やしてから、そのファイルが大きすぎることに気づくという手間を省くことができます。
<ol class="dp-xml">
<li class="alt"><span><span>upload.php  </span></span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">f</font></span><span>=&$HTTP_POST_FILES['Myfile'];  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">dest_dir</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">'uploads'</font></span><span>;//设定上传目录  </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">dest</font></span><span>=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">r</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">move_uploaded_file</font></span><span>($f['tmp_name'],$dest);  </span>
</li>
<li class=""><span>chmod($dest, 0755);//设定上传的文件的属性 </span></li>
</ol>

または

<ol class="dp-xml"><li class="alt">
<span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>copy</SPAN></FONT></STRONG><SPAN>($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);</SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></span></font></strong></span><span> </span>
</li></ol>

上記の例の $_FILES 配列の内容は次のとおりです。ファイルアップロードフィールドの名前は userfile とする(名前は任意)

<ol class="dp-xml">
<li class="alt"><span><span>$_FILES['userfile']['name']//客户端机器文件的原名称。  </span></span></li>
<li class=""><span>$_FILES['userfile']['type'] //文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。  </span></li>
<li class="alt"><span>$_FILES['userfile']['size']// 已上传文件的大小,单位为字节。  </span></li>
<li class=""><span>$_FILES['userfile']['tmp_name'] //文件被上传后在服务端储存的临时文件名。  </span></li>
<li class="alt"><span>$_FILES['userfile']['error'] //和该文件上传相关的错误代码 </span></li>
</ol>

PHP ファイルアップロード値の分析:
◆値: 0; エラーは発生せず、ファイルのアップロードは成功します。
◆値: 1; アップロードされたファイルは、php.ini の Upload_max_filesize オプションで制限された値を超えています。
◆値: 2; アップロードされたファイルのサイズが HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。
◆値: 3; ファイルの一部のみがアップロードされました。
◆値: 4; ファイルはアップロードされませんでした。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446562.html技術記事コンピューター愛好家で PHP を知らない人は時代遅れです。PHP の関連知識を知りたい場合は、PHP ファイルのアップロードの実装を見てみましょう。このコードは次のように分かれています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。