ホームページ >バックエンド開発 >PHPチュートリアル >マスターノート: PHP アップロード ファイル コード_PHP チュートリアル
PHP はまだ比較的一般的に使用されており、誰もがその強力な機能を知っているはずです。ここでは PHP ファイルのアップロード コード分析を実装します。 PHP でアップロードの進行状況バーを実装するのが難しい理由は、ファイルをサーバーにアップロードするときに、対応する PHP ファイルを実行する前に、すべてのファイルがサーバーに送信されるまで待機する必要があるためです。これまでは、ファイル データは一時ファイルに保存されており、PHP はこのファイルのパスとサイズを取得できませんでした。
php はファイルをアップロードして、保存するパスが存在するかどうかを判断します。 ファイルタイプが要件を満たしている場合は is_dir()、explode('.',name)array()、ファイルサイズが要件を満たしている場合は in_array() move_uploaded_file ($_FILES[]['tmp_name']、保存するパスとファイル名) をアップロードできます。$_FILES[]['name'] を使用して元の名前で保存することも、名前を変更することもできます。 : 時間()。
PHP アップロード ファイル コード:
<ol class="dp-xml"> <li class="alt"><span><span>function uploafile($path,$</span><span class="attribute"><font color="#ff0000">filesize</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">10241000</font></span><span>,$</span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>) </span></span></li> <li class=""><span>{ </span></li> <li class="alt"><span>if(!empty($path) && !file_exists($path)) </span></li> <li class=""><span>{ </span></li> <li class="alt"><span> echo '上传文件的路径不存在';exit; </span></li> <li class=""><span>} </span></li> <li class="alt"><span>//允许上传的文件类型 </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">filetype</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span> </span> </li> <li class="alt"><span>( </span></li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">1</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('gif','png','jpg','jpeg','bmp'), </span> </li> <li class="alt"> <span> </span><span class="attribute"><font color="#ff0000">2</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('swf','flv'), </span> </li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">3</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('rm','rmvb','avi','wmv','mpg','asf','mp3','wma','wmv','mid'), </span> </li> <li class="alt"> <span> </span><span class="attribute"><font color="#ff0000">4</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('txt','doc','xls','ppt','pdf','xml','rar','zip','gzip','cab','iso','sql'), </span> </li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">6</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('exe','com','scr','bat') </span> </li> <li class="alt"><span>); </span></li> <li class=""><span>//上传文件类型数组合并 </span></li> <li class="alt"><span>$filetype[5] = array_merge($filetype[2],$filetype[3]); </span></li> <li class=""><span>//获得$_FILES数组的所有key </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">arr_key</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_keys</font></span><span>($_FILES); </span> </li> <li class=""><span>//判断要上传的文件名称 </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">file</font></span><span> = $_FILES[$arr_key[0]]; </span> </li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">exten</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">check_file_type</font></span><span>($file['name']); </span> </li> <li class="alt"><span>//判断文件上传类型 </span></li> <li class=""><span>if($type!=7 && !in_array($exten,$filetype[$type])) </span></li> <li class="alt"><span>{ </span></li> <li class=""><span> echo $file['name'].'的文件类型不符合要求!';exit; </span></li> <li class="alt"><span>} </span></li> <li class=""><span>//判断文件大小 </span></li> <li class="alt"> <span>if($file['size']</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>$filesize) </span> </li> <li class=""><span>{ </span></li> <li class="alt"><span> echo $file['size'].'的文件大小不能超过'.$filesize.'字节';exit; </span></li> <li class=""><span>} </span></li> <li class="alt"><span>//开始上传 </span></li> <li class=""><span>//move_uploaded_file($file['tmp_name'],$path.$file['name']); </span></li> <li class="alt"><span>//为了避免覆盖,重命在旦夕名该文件 </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">newname</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">time</font></span><span>().'.'.$exten; </span> </li> <li class="alt"><span>move_uploaded_file($file['tmp_name'],$path.$newname); </span></li> <li class=""><span>return $newname; </span></li> <li class="alt"><span>} </span></li> <li class=""><span> </span></li> <li class="alt"> <span>echo uploafile('',$</span><span class="attribute"><font color="#ff0000">filesize</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">10241000</font></span><span>,$</span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">3</font></span><span>); </span> </li> <li class=""> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> </ol>
上記は詳細な PHP ファイル アップロード コードです。非常に簡単です。