php 上傳多個檔案

PHP 上傳檔案的必要環境:

● php.ini 之設定

    確認允許檔案上傳
    file_uploads = On
    設定暫存目錄區的路徑
    upload_tmp_dir = "C:/temp"
    設定可接受的上傳檔案大小
    upload_max_filesize = 10M

● Apache 設定檔 httpd.conf

    設定主機傳送及接收的等待時間(秒)
    Timeout 300

檔案上傳的表單 (Form),使用之注意事項:

    以 POST 方式傳送資料
    <form> 標籤要加入
    enctype="multipart/form-data" 屬性
    傳送資料的 <input> 標籤,必須設定 type="file" 屬性,以產生 瀏覽 按鈕。
    建議設定一隱藏欄位:name="MAX_FILE_SIZE" ,value 必須設定一數字,做為上傳檔案大小的限制。
    單位:bytes
    將表單中 type="file" 的 <input> 標簽名稱 name,改由陣列方式來處理。

參考許多網站的範例修改一版,直接拿來就可以使用了
開啟資料夾命名為 upload 在裡面新增 index.php、upload.php、file資料夾

index.php 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>檔案上傳</title>
</head>
<body>
<div style="text-align:center;">
   <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="hidden" name="MAX_FILE_SIZE" value="10000000">                                               
      選擇檔案一:<input name="uploadfile[]" type="file"></br>
      選擇檔案二:<input name="uploadfile[]" type="file"></br>
      選擇檔案三:<input name="uploadfile[]" type="file"></br> 
      <input type="submit" value="送出">
   </form>
</div>
</body>
</html>


upload.php
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <meta http-equiv="refresh" content="0;url=index.php" />
   <title>多個檔案上傳處理</title>
</head>

<body>
   <?php
   $uploaddir="./file/";
   $i=count($_FILES["uploadfile"]["name"]);
   for ($j=0 ; $j<$i ; $j++)
   {
      $tmpfile=$_FILES["uploadfile"]["tmp_name"][$j];
      $file2=mb_convert_encoding($_FILES["uploadfile"]["name"][$j],"big5","utf8");
      if(move_uploaded_file($tmpfile,$uploaddir.$file2))
     {
         echo "上傳成功<br>";
         echo "檔案名稱:".$_FILES["uploadfile"]["name"][$j]."<br>";
         echo "檔案類型:".$_FILES["uploadfile"]["type"][$j]."<br>";
         echo "檔案大小:".$_FILES["uploadfile"]["size"][$j]."<br>";
      }
     else
      {
         echo "上傳失敗!<br> ";
         echo "檔案名稱:".$_FILES["uploadfile"]["name"][$j]."<br>";
         echo "檔案類型:".$_FILES["uploadfile"]["type"][$j]."<br>";
         echo "檔案大小:".$_FILES["uploadfile"]["size"][$j]."<br>";
         echo "失敗原因:".$_FILES['uploadfile']['error'][$j]."<br>";
      }
   }
   ?>
</body>
</html>



留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

使用windows CMD 時間自動校正