復制代碼 代碼如下:
<?php
if($_FILES['myfile']['name'] != '') {
if($_FILES['myfile']['error'] > 0) {
echo "錯誤狀態:" . $_FILES['myfile']['error'];
} else {
move_uploaded_file($_FILES['myfile']['tmp_name'] , "uploads/" . $FILES['myfile']['name']);
echo "<script>alert(上傳成功!);</script>";
}
} else{
echo "<script>alert(請上傳文件!);</script>";
}
?>
說明:
在解釋這篇代碼前,我們有必要了解以下知識。
$_FILES['myfile']['name'] 是指被上傳文件的名稱
$_FILES['myfile']['type'] 是指被上傳文件的類型
$_FILES['myfile']['size'] 是指被上傳文件的大小,單位為字節(B)
$_FILES['myfile']['tmp_name'] 是指被上傳文件存在服務器中的臨時副本文件名稱,文件被移動到指定目錄後臨文件將被自動消毀。
$_FILES['myfile']["error"] 是指由文件上傳中有可能出現的錯誤的狀態碼,關於各狀態含義後在會說明。
了解了這些,我們再來看一下upload.php的代碼。
首先,$_FILES['myfile']['name']中的myfile是指在上面HTML頁面中上傳文件標簽的name值,根據這個我們才能知道我們正在處理的文件是哪一個input提交過來的。
然後再來判斷一下 $_FILES['myfile']['name'] 不是否為空,根據這個我們可以知道用戶有沒有上傳文件,從而執行不同的操作。
如果上傳了文件並且狀態是0就說明上傳成功,我們就可以用 move_uploaded_file方法把上傳的文件存放到指定目錄,上面這個例子是指把上傳的文件移動到同目錄下的uploads文件夾下,這個路徑是相對於這個PHP文件(既upload.php)的相對目錄。
比如,我們想把上傳的文件移動到upload.php上一層叫user的文件夾中的話,我們就可以這樣寫:move_uploaded_file($_FILES['myfile']['tmp_name'] , "./user/". $FILES['myfile']['name']),這種方法使用起來很方便、靈活,這樣一個文件就被上傳到服務器中了,可以打開服務器中的目錄查看該文件。