PHP はアップロード原理とファイルのアップロードとダウンロードの実裝を?qū)g現(xiàn)します
アップロード原理
クライアントファイルをサーバーにアップロードし、サーバー側(cè)ファイル(一時(shí)ファイル)を指定されたディレクトリに移動(dòng)します。
ファイルアップロードを?qū)Wぶことで、使用現(xiàn)象を通してファイルアップロードの本質(zhì)がわかります!
アップロードの実裝
1.クライアント設(shè)定
ファイルアップロードページ(フォームページ)を選択します
次の2つは必須です:
送信メソッドは POST です
add enctype="multipart/form-data" 屬性です
index.php コードは次のとおりです:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>文件上傳</title> <meta charset="utf-8" /> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 請(qǐng)選擇您要上傳的文件:<br/> <input type="file" name="myFile" /><br/> <input type="submit" value="上傳"/> </form> </body> </html>
注: キーはフォームの屬性です。 type= は入力ファイルで使用されます
2. アップロード処理ページ
アップロードプログラムの処理フローチャートは次のとおりです
。 php コードは次のとおりです:
<?php header("Content-type:text/html;charset=utf-8"); //文件上傳處理程序 //$_FILES:文件上傳變量 /*echo "<pre>"; var_dump($_FILES); exit; echo "</pre>";*/ $filename=$_FILES['myFile']['name']; $type=$_FILES['myFile']['type']; $tmp_name=$_FILES['myFile']['tmp_name']; $size=$_FILES['myFile']['size']; $error=$_FILES['myFile']['error']; //將服務(wù)器上的臨時(shí)文件移動(dòng)到指定位置 //方法一move_upload_file($tmp_name,$destination) //move_uploaded_file($tmp_name, "uploads/".$filename);//文件夾應(yīng)提前建立好,不然報(bào)錯(cuò) //方法二copy($src,$des) //以上兩個(gè)函數(shù)都是成功返回真,否則返回false //copy($tmp_name, "copies/".$filename); //注意,不能兩個(gè)方法都對(duì)臨時(shí)文件進(jìn)行操作,臨時(shí)文件似乎操作完就沒了,我們?cè)囋嚪催^來 copy($tmp_name, "copies/".$filename); move_uploaded_file($tmp_name, "uploads/".$filename); //能夠?qū)崿F(xiàn),說明move那個(gè)函數(shù)基本上相當(dāng)于剪切;copy就是copy,臨時(shí)文件還在 //另外,錯(cuò)誤信息也是不一樣的,遇到錯(cuò)誤可以查看或者直接報(bào)告給用戶 if ($error===0) { echo "上傳成功!"; }else{ switch ($error){ case 1: echo "超過了上傳文件的最大值,請(qǐng)上傳2M以下文件"; break; case 2: echo "上傳文件過多,請(qǐng)一次上傳20個(gè)及以下文件!"; break; case 3: echo "文件并未完全上傳,請(qǐng)?jiān)俅螄L試!"; break; case 4: echo "未選擇上傳文件!"; break; case 5: echo "上傳文件為0"; break; } }アップロードをクリックすると、以下が表示されます:
注: アップロードされた畫像を保存するには、upload.php と同じディレクトリに新しいアップロード フォルダーを作成する必要があります。エラーが報(bào)告されます