1.若表單中有file元件(用來上傳的元件),其表單編碼(enctype)一定要加上:「enctype="multipart/form-data"」。
2.記得建立一個資料夾,例如:contact_upload
3.每上傳一張圖(假設file欄位名稱為pic),都會產生一組 $_FILES 超級全域變數:
(1) $_FILES['pic']['name']:上傳檔案原始名稱。
(2) $_FILES['pic']['type']:檔案的 MIME 類型,例如“image/gif”。
(3) $_FILES['pic']['size']:已上傳檔案的大小,單位為bytes。
(4) $_FILES['pic']['tmp_name']:檔案被上傳後的臨時檔案名。
(5) $_FILES['pic']['error']:和該檔案上傳相關的錯誤代碼。
4.上傳的步驟:送出上傳→圖會暫時放到tmp中→程式要搬移該檔到指定的位置。
5.搬移上傳檔方法:move_uploaded_file(暫存檔 , 新路徑檔名)
1.這是一個人家寫好的上傳物件,操作簡單,功能強大!強烈建議使用。
2.手冊:http://www.verot.net/res/sources/class.upload.html
<? include('class/upload/class.upload.php'); $old_file=_UPLOAD_DIR."/{$sn}.png"; if(file_exists($old_file)){ unlink($old_file); } $img_handle = new upload($_FILES['pic'],"zh_TW"); if ($img_handle->uploaded) { $img_handle->file_safe_name = false; $img_handle->file_overwrite = true; $img_handle->file_new_name_body = $sn; $img_handle->image_convert = 'png'; $img_handle->image_resize = true; $img_handle->image_x = 80; $img_handle->image_ratio_y = true; $img_handle->process(_UPLOAD_DIR); if ($img_handle->processed) { $img_handle->clean(); } else { die($img_handle->error); } } ?> |
//引入物件檔,路徑請自行修改 //舊檔路徑 //判斷是否已經有舊檔存在 //若存在,刪除該檔案 //將上傳物件實體化 //假如檔案已經上傳到tmp //會把檔名的空白改為「_」 //強制覆寫相同檔名 //重新設定新檔名 //轉檔為png格式,方便管理 //要重設圖片大小 //設定寬度為80px //按照比例縮放高度 //檔案搬移到目的地 //判斷搬移執行結果 //若搬移成功,則釋放記憶體 //否則 //秀出錯誤訊息。 |