close
檔案上傳在WEB程式開發上市經常使用到的功能,而利用PHP的檔案上傳功能也相當的方便,不需要太多程式碼即可完成;要建置好檔案上傳功能主要需完整設定下列步驟
(1) php.ini設定
打開php.ini找到【File Uploads】的設定區塊,並設定下列參數
- file_uploads = On ( 設定檔案上傳功能是否開啟,預設值即為On的狀態 )
- upload_tmp_dir = c:\php\temp\ ( 設定檔案上傳的暫存目錄,此參數預設為關閉的狀態,預設將丟到系統的temp目錄;以Windows為例,預設上傳目錄為c:\windows\temp\ )
- upload_max_filesize = 2M ( 設定允許上傳檔案的大小,預設值為2M )
- max_file_uploads = 20 ( 設定一次最多可上傳的檔案數量,預設值為20 )
設定完成後再將Web Server重啟後即可生效
(2) 確認暫存目錄及目的目錄的權限是否開啟
在Windows環境下,目錄必須允許可寫入的權限
(3) 佈置HTML file上傳元件及表單設定編碼方式
在HTML表單頁面上布置file元件,並設定form標籤的enctype屬性和上傳元件name屬性的如下
(4) 於PHP程式端接收並搬移檔案
在伺服器端PHP程式接收檔案並將檔案自暫存目錄,主要利用$_FILES變數和move_uploaded_file進行動作。可利用$_FILES['list']取得檔案相關資訊 (名稱需與上傳元件的name屬性相同),如下
$_FILES['list']['tmp_name'] : 上傳檔案的暫存檔位置及名稱
$_FILES['list']['name'] : 上傳檔案的名稱
$_FILES['list']['size'] : 上傳檔案的大小
在此要注意的是檔案路徑的寫法需依系統環境為Windows或Linux而決定路徑描述方式,例如在Windows環境如c:\\php\temp \\list.csv (路徑需雙斜線避免PHP錯誤解譯);在Linux環境則為/php/temp/list.csv。基本的檔案上傳並搬移至指定目錄方式如下範例所示
如此便可輕鬆完成PHP檔案上傳
參考資料:
1. http://blog.raienet.com/410
http://yorkshiredaydreamer.blogspot.com/2011/08/php.html
(1) php.ini設定
打開php.ini找到【File Uploads】的設定區塊,並設定下列參數
- file_uploads = On ( 設定檔案上傳功能是否開啟,預設值即為On的狀態 )
- upload_tmp_dir = c:\php\temp\ ( 設定檔案上傳的暫存目錄,此參數預設為關閉的狀態,預設將丟到系統的temp目錄;以Windows為例,預設上傳目錄為c:\windows\temp\ )
- upload_max_filesize = 2M ( 設定允許上傳檔案的大小,預設值為2M )
- max_file_uploads = 20 ( 設定一次最多可上傳的檔案數量,預設值為20 )
設定完成後再將Web Server重啟後即可生效
(2) 確認暫存目錄及目的目錄的權限是否開啟
在Windows環境下,目錄必須允許可寫入的權限
(3) 佈置HTML file上傳元件及表單設定編碼方式
在HTML表單頁面上布置file元件,並設定form標籤的enctype屬性和上傳元件name屬性的如下
(4) 於PHP程式端接收並搬移檔案
在伺服器端PHP程式接收檔案並將檔案自暫存目錄,主要利用$_FILES變數和move_uploaded_file進行動作。可利用$_FILES['list']取得檔案相關資訊 (名稱需與上傳元件的name屬性相同),如下
$_FILES['list']['tmp_name'] : 上傳檔案的暫存檔位置及名稱
$_FILES['list']['name'] : 上傳檔案的名稱
$_FILES['list']['size'] : 上傳檔案的大小
在此要注意的是檔案路徑的寫法需依系統環境為Windows或Linux而決定路徑描述方式,例如在Windows環境如c:\\php\temp \\list.csv (路徑需雙斜線避免PHP錯誤解譯);在Linux環境則為/php/temp/list.csv。基本的檔案上傳並搬移至指定目錄方式如下範例所示
define('_DOC_ROOT_', $_SERVER['DOCUMENT_ROOT'].'\\');
define('_DOC_UPLOAD_', _DOC_ROOT_.'TEMP\\UPLOAD\\');
if( !isset($_POST['list']) )
return false;
// Get the uploaded list
$tmp_name = $_FILES['list']['tmp_name'];
$real_name = _DOC_UPLOAD_ . basename($_FILES['list']['name']);
move_uploaded_file($tmp_name, $real_name);
如此便可輕鬆完成PHP檔案上傳
參考資料:
1. http://blog.raienet.com/410
http://yorkshiredaydreamer.blogspot.com/2011/08/php.html
全站熱搜
留言列表