PHP 上傳檔案

要用php上傳檔案要注意三點。
1. 準備上傳的介面(html)
2. 後台處理(php)
3. 移動上傳後的檔案

然後準備這樣的html
<form action="upload.php" method="post" enctype="multipart/form-data">
選取檔案: <input type="file" name="file" id="file">
<input type="submit">
</form>
input type="file" 就是用來選取檔案的。
接著建立一個資料夾來放上傳後的檔案,這樣其他使用者才看的到,在這裡建立一個名稱為"upload"的資料夾。

接著建立一個處理上傳檔案的php,稍微了解一下各個代表的意思,$_FILES後面接的第一個值是這個form的name,因為我的name是取file,所以裡面的值就是file。
$_FILES["file"]["name"]:上傳檔案的原始名稱。
$_FILES["file"]["type"]:檔案類型。
$_FILES["file"]["size"]:檔案原始大小。
$_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
$_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。

撰寫php
  1. <?php   
  2. if ($_FILES["file"]["error"] > 0){   
  3.     echo "Error: " . $_FILES["file"]["error"];   
  4. }else{   
  5.     echo "檔案名稱: " . $_FILES["file"]["name"]."<br/>";   
  6.     echo "檔案類型: " . $_FILES["file"]["type"]."<br/>";   
  7.     echo "檔案大小: " . ($_FILES["file"]["size"] / 1024)." Kb<br />";   
  8.     echo "暫存名稱: " . $_FILES["file"]["tmp_name"];   
  9.     //判斷是否有重覆檔名   
  10.     if (file_exists("upload/" . $_FILES["file"]["name"])){   
  11.         echo "已有相同檔名存在";   
  12.     }else{   
  13.     //移動檔案到放圖片的資料夾,並將檔名命名為原始的檔名   
  14.         move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);   
  15.     }   
  16. }   
  17. ?>   

可以加這具判斷是否有檔案,有檔案再做以上的處理
  1. if(isset($_FILES["file"]))  

更多說明:
file_exists
move_uploaded_file

留言