close

主要結構:

1. 上傳檔案的 html

2. 處理上傳檔案的 php (此範例將其命名為 uploadfile.php)

 

特別注意:

1. 需建立一個儲存上傳檔案的資料夾 (此範例將其命名為 upload)

2. 表單 form 一定要加上 enctype="multipart/form-data" 代表要上傳檔案

 

介紹一下 PHP $FILES 陣列的用法:

$_FILES["file"]["name"]:上傳檔案的原始名稱。

$_FILES["file"]["type"]:上傳的檔案類型。

$_FILES["file"]["size"]:上傳的檔案原始大小。

$_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。

$_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。

 

1. 首先,須有一個上傳檔案的 html 檔

<html>

<body>

 <form action="uploadfile.php" method="post" enctype="multipart/form-data">

 選擇檔案:<input type="file" name="myfile" id="myfile" /><br />

 <input type="submit" name="submit" value="上傳檔案" />

 </form>

</body>

</html>

 

2. 在資料夾內建立一個儲存上傳檔案的資料夾,此範例將其命名為 upload 

 

3. 接著,撰寫一個處理上傳檔案的 php 檔 (此範例將其命名為 uploadfile.php)

使用 move_uploaded_file 將上傳的檔案搬移到資料夾中,判斷式的部分可自行斟酌是否使用 

<?php

if ($_FILES["myfile"]["error"] > 0){

 echo "Error: " . $_FILES["myfile"]["error"];

}else{

 echo "檔案名稱: " . $_FILES["myfile"]["name"]."<br/>";

 echo "檔案類型: " . $_FILES["myfile"]["type"]."<br/>";

 echo "檔案大小: " . ($_FILES["myfile"]["size"] / 1024)." Kb<br />";

 echo "暫存名稱: " . $_FILES["myfile"]["tmp_name"];

 if (file_exists("upload/" . $_FILES["myfile"]["name"])){

  echo "檔案已經存在,請勿重覆上傳相同檔案";

 }else{

  //在檔名不會有中文的情況下,可以直接 move_uploaded_file  

  //move_uploaded_file($_FILES["myfile"]["tmp_name"],"upload/".$_FILES["myfile"]["name"]);

 

  //在無法判斷檔名是否有中文的情況下,建議使用此方法(iconv( 原來的編碼 , 轉換的編碼 , 轉換的字串 ))避免掉中文檔名無法上傳的問題

 

  $target_path = "upload/"; //指定上傳資料夾

  $target_path .= $_FILES['myfile']['name']; //上傳檔案名稱

 

  if(move_uploaded_file($_FILES['myfile']['tmp_name'],

     iconv("UTF-8", "big5", $target_path ))) {  

    echo "檔案:". $_FILES['myfile']['name'] . " 上傳成功!";

  } else{

    echo "檔案上傳失敗,請再試一次!";

  }

 

 }

}

?>

 

最後,以上有貼心顏色提醒,若發現程式跑不起來有Bug時,可先對照一下相關的路徑名稱是否皆有相符喔 ~

 

arrow
arrow

    Austin 發表在 痞客邦 留言(0) 人氣()