步驟一、製做上傳頁面(採用 HTML 即可)
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
選擇檔案:<input type="file" name="file" id="file" /><br />
<input type="submit" name="submit" value="上傳檔案" />
</form>
</body>
</html>
如果你對 HTML 很熟悉,那這個範例對你來說應該很簡單,表單 <form> 中的 enctype="multipart/form-data" 是代表你要上傳檔案,沒寫的話可能會無法運作唷!選擇檔案的部分,必須使用 file 的模式,瀏覽器會讓你選擇檔案。<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
選擇檔案:<input type="file" name="file" id="file" /><br />
<input type="submit" name="submit" value="上傳檔案" />
</form>
</body>
</html>
步驟二、建立上傳檔案的資料夾
當網友選擇好檔案後,上傳的過程會先將檔案放在暫存區(tmp),必須整個移到你的資料夾中才算完成,建立上傳資料夾相當的簡單,如果你是使用 Windows 作業系統,就跟平時建立資料夾一樣容易,我們就先建立一個資料夾,命名為 upload。
步驟三、撰寫 PHP 上傳程式
在寫之前,我們必須先了解幾個 PHP $FILES 陣列的用法
- $_FILES["file"]["name"]:上傳檔案的原始名稱。
- $_FILES["file"]["type"]:上傳的檔案類型。
- $_FILES["file"]["size"]:上傳的檔案原始大小。
- $_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
- $_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。
<?php
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"];
}else{
echo "檔案名稱: " . $_FILES["file"]["name"]."<br/>";
echo "檔案類型: " . $_FILES["file"]["type"]."<br/>";
echo "檔案大小: " . ($_FILES["file"]["size"] / 1024)." Kb<br />";
echo "暫存名稱: " . $_FILES["file"]["tmp_name"];
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]); //移動檔案
}
?>
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"];
}else{
echo "檔案名稱: " . $_FILES["file"]["name"]."<br/>";
echo "檔案類型: " . $_FILES["file"]["type"]."<br/>";
echo "檔案大小: " . ($_FILES["file"]["size"] / 1024)." Kb<br />";
echo "暫存名稱: " . $_FILES["file"]["tmp_name"];
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]); //移動檔案
}
?>
範例最後面使用了 move_uploaded_file 來將剛剛上傳到暫存資料夾的檔案,移動到你在步驟二所建立的資料夾 upload 中。寫到這邊,基本的 PHP 上傳檔案系統應該就算是完成了,你還可以加入很多其它的判斷,增加系統的完整性。
延伸閱讀
用 JavaScript 判斷上傳檔案或圖片的檔案大小