檔案上傳模組 超簡易版 三行搞定

網路上面寫了很多檔案上傳的模組,這幾天也找了很多書,大部分的書上面都是用陣列的方式運用讓一次可以上傳很多檔案。不過我很認真的寫了一個非常單純的上傳模組。可以讓大家更了解上傳的運作方式。

1.首先,還是要先製作一個上傳的表單
表單要加上 enctype="multipart/form-data" 這個屬性
這個輸入框的type要把它設成file至於ID就設成userfile吧







2.接下來就是接收的頁面,通常我會把接收的頁面同時也當作是程式運算的頁面,上傳檔案的動作再標頭的位置就可以處理掉。

//這一行要先寫上傳的檔案要先暫存在的資料夾
$uploaddir = 'C:/AppServ/www/test/img/';
//宣告暫存檔名
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
//更改上傳的檔名為 PID_B.jpg
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_POST["PID"] . '_B'.'.jpg');


解釋一下好了:
原理:
PHP中檔案丟到伺服器中只會被暫存,當網頁關閉就會被刪除。因此我們要趕在檔案被刪除之前把檔案搬走,搬到我們要的地方,這樣我們就可以留下我們要的檔案。
這就是上傳檔案的原理。但是要注意一件事就是要先確定暫存的目錄和移動的目錄都要是存在的,PHP並沒有向WINDOWS一樣還會自動生成一個資料夾,只會自動出現錯誤資訊。

語法:
$uploaddir = '這個地方是暫存的實體位址喔';
//接下來要利用
$_FILES語法來取得userfile傳回來的檔名寫到$uploadfile變數中
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
//利用move_uploaded_file搬移檔案到我們要的地方(這是語法喔不是變數)
move_uploaded_file(原來的檔案,目的地檔案);
這樣就大功告成啦!!



留言