[ PHP ] 基本檔案上傳

找到一篇寫的超清晰的文章,教你如何用 PHP 上傳檔案

這邊稍微筆記一下。

================================================

一、php.ini 設定

要作上傳檔案前,先至 php.ini 中作基本的設定:

file_uploads:檔案上傳 ,設為 On (允許上傳)
upload_max_filesize:上傳最大檔案大小,預設 2M ,建議不要太大
max_execution_time:最大程式執行時間,預設為 30 秒
max_input_time:接收資料時間限制,建議比 max_execution_time 大
memory _limit:最大記憶體,必須比 upload_max_filesize 大,上傳才不會出錯
post_max_size:POST資料量限制,預設 8M,必須比 upload_max_filesize 大

二、建立上傳表單

新增一個 index.html,這裡用 POST 方法傳遞給 upload.php 作處理。

未命名

三、 新增資料夾

以此例,新增一個 file 資料夾,讓上傳的檔案存於此資料夾,
注意要記得開啟資料夾權限,避免上傳失敗。

四、上傳檔案

新增一個 upload.php 檔案,來作檔案上傳的動作 (複製、儲存)。
在此會用到 $_FILES 陣列:

$_FILES[‘file’][‘error’]:上傳檔案的錯誤帶碼,若為 0 則表示無誤。
$_FILES[‘file’][‘type’] :檔案的 Mini 類型。
$_FILES[‘file’][‘size’]  :檔案大小,單位為 Byte。
$_FILES[‘file’][‘name’]:檔案名稱。
$_FILES[‘file’][‘tmp_name’]:檔案暫存位置。

先驗證檔案是否上傳成功,有誤則停止動作。
未命名

由於上傳的檔案只會暫存於系統上,程式執行完畢後就會消失,
所以必須複製到 file 資料夾中作儲存,這邊使用的語法為
move_uploaded_file( 暫存檔案位置, 新存檔位置 ) 。
未命名

================================================

以上簡單筆記一下上傳檔案的方法。

Done!

[ PHP ] 基本檔案下載寫法與說明

在修改棒球歷史資料庫網站時,發現學長使用

header( “location: " + URL );,以轉址的方式作檔案 ( mdb )

的匯出和下載,但此方法並不適用於 accdb ,所以,在這邊

紀錄一下解決的方法。

================================================

這邊寫一個 Download_File() 的方法來處理下載檔案。

未命名

先以 is_file( $file ) 判斷檔案是否存在 ( $file 為完整路徑+檔名 )

而在 header 開頭的部分:

header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″);
在瀏覽器中不殘留快取。

header(“Content-Description: File Transfer");
傳遞檔案,但不在瀏覽器中開啟檔案。

================================================

附上header: 下載與轉址等等Stack overflow 中的討論

Done!