PHP 上傳檔案的必要環境:
● php.ini 之設定 [C:\AppServ\php5]
- 確認允許檔案上傳
file_uploads = On - 設定暫存目錄區的路徑
upload_tmp_dir = "C:/temp" - 設定可接受的上傳檔案大小
upload_max_filesize = 10M
● Apache 設定檔 httpd.conf [C:\AppServ\Apache2.2\conf]
- 設定主機傳送及接收的等待時間(秒)
Timeout 300
檔案上傳的表單 (Form),使用之注意事項:
- 以 POST 方式傳送資料
- <form> 標籤要加入
enctype="multipart/form-data" 屬性 - 傳送資料的 <input> 標籤,必須設定 type="file" 屬性,以產生 瀏覽 按鈕。
- 建議設定一隱藏欄位:name="MAX_FILE_SIZE" ,value 必須設定一數字,做為上傳檔案大小的限制。
單位:bytes - 將表單中 type="file" 的 <input> 標簽名稱 name,改由陣列方式來處理。
程式範例:
upload.htm
-------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>檔案上載</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
選擇檔案一:<input name="uploadfile[]" type="file">
選擇檔案二:<input name="uploadfile[]" type="file">
選擇檔案三:<input name="uploadfile[]" type="file">
<input type="submit" value="送出">
</form>
</body>
</html>
upload.php
-------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>多個檔案上傳處理</title>
</head>
<body>
<?
$uploaddir="./upload/";
$i=count($_FILES["fileupload"]["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>
2 則留言:
$i=count($_FILES["fileupload"]["name"]);
有錯,應改成
$i=count($_FILES["uploadfile"]["name"]);
才會對
張貼留言