upload_tmp_dir = "C:\Windows\Temp" [ = "tmp" Linux]
- <form action="接收檔.php" method="post" enctype="multipart/form-data"> [傳送資料的編碼方式]
- 單一/多檔 上傳
- <input type="file" name="fileUpload">
- <input type="file" name="fileUpload[ ]">
- 暫存檔資訊
- $_FILES["欄位名稱"]["tmp_name"] 取得暫存檔名稱
- $_FILES["欄位名稱"]["name"] 取得原本名稱
- $_FILES["欄位名稱"]["type"] 取得檔案類型[text/plain]、[image/pjpeg]
- $_FILES["欄位名稱"]["size"] 取得檔案大小
- $_FILES["欄位名稱"]["error"] 取得錯誤碼
- [ 0 ]UPLOAD_ERR_OK 上傳成功
- [ 1 ]UPLOAD_ERR_INI_SIZE 檔案大於<php.ini>中設定upload_max_filesize的最大上傳檔案大小
- [ 2 ]UPLOAD_ERR_FROM_SIZE 檔案大於表單(form)能傳送的大小MAX_FILE-SIZE
- [ 3 ]UPLOAD_ERR_PARTIAL 只有部分檔案被上傳
- [ 4 ]UPLOAD_ERR_NO_FILE 檔案沒有被上傳
- [ 5 ]UPLOAD_ERR_NO_TMP_DIR 沒有設定/找不到 暫存檔案夾
- [ 6 ]UPLOAD_ERR_CANT_WRITE 檔案寫入磁碟失敗
- move_upload_file( 暫存檔名稱, 目的路徑及檔名 ) "./".FILES[ ][ ]
- 多檔 二維陣列 $_FILES["欄位名稱"]["tmp_name"][$i]
- 一維:$_FILES["欄位名稱"]["tmp_name"]
- 二維:[$i]
- 注意表單 form 需要加上 enctype="multipart/form-data" 代表你要上傳檔案
- utf-8 編碼網頁無法在 big5 系統正確處理中文檔名,原因在於 move_uploaded_file() 不能處理 utf-8 中文編碼,需利用 iconv() 函數作轉碼,解決方法如下:
- 請將
- move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile)
- 改為
- move_uploaded_file($_FILES['myfile']['tmp_name'], iconv("utf-8", "big5", $uploadfile))
參考資料:
沒有留言:
張貼留言