檔案上傳,springmvc檔案上傳
檔案上傳
檔案上傳就是將用戶端的檔案上傳到伺服器端(並不是簡單的copy)
檔案上傳需要兩部分:用戶端、伺服器端。
用戶端:
- 利用form中的file表單元素進行檔案上傳
- 對於get方式只能傳遞文本性的資訊,POST可以傳遞位元據
- enctype:主要用於設定資料傳遞的方式
- 取值:
- aplication/x-www-url-encoded (預設)主要用於傳輸文本性的資料。
- multipart/form-data 用於設定傳多種表單資料(文本資料與位元據)
伺服器端
- php.ini中需要開啟檔案上傳:file_uploads
- php.ini中臨時目錄:upload_tmp_dir
- php.ini中控制上傳檔案大的:upload_maxfile_size
php檔案上傳的設定:
php.ini中有一個
file_uploads
樣本:
upload_tmp_dir
用於設定檔案上傳的臨時儲存的目錄,臨時目錄的特點:當指令碼執行結束後,臨時檔案會被馬上刪除。
upload_max_filesize
用於設定php對上傳檔案大小的限制值
一上最多所能上傳檔案的限制
由於臨時檔案目錄中會有指令碼執行結束刪除檔案,那麼需在指令碼執行結束之前就將上傳的檔案,移動另的目錄(專用於隱藏檔上傳的目錄)
move_uploaded_file($filename,$target);函數
說明:
$filename是檔案名稱
$target是目錄名(使用者自訂的)
將$filename移動$dirname指定的目錄
$_FIELS:主要用於記錄檔案上傳的相關資訊
封裝檔案上傳函數
1、定義函數
2、由於需要根據表單元素的name屬性值,在$_FILES數組中找到臨時檔案的完整檔案名稱,還不能對前端的input表單元素的name屬性值 限制死。需要後台通過array_keys動態擷取到input表單元素的name屬性值
樣本:
代碼:
第3步:擷取臨時檔案名稱
第4步:擷取檔案尾碼
第5步:封裝隨機組建檔案名函數
第6步:調用組建檔案名函數
第7步:移動檔案
檔案上傳錯誤資訊
主要儲存在$_FILES['name屬性值']['error']
樣本:
error的值:
upload_err_ok 0表示沒有錯誤,上傳成功
upload_err_ ini_size 1
upload_err_form_size 2
樣本:
upload_err_partial 3
upload_err_no_file 4
upload_err_no_tmp_dir 6
upload_err_cant_write 7
樣本:
第8步:對錯誤資訊判斷
//判斷檔案上傳是否成功
switch($arr[$v]['error']){
case 0:
$arrFiles['filename'][]=$fullname;
$arrFiles['code'][]=0;
break;
case 1:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='超過php檔案大小限制';
break;
case 2:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='超過form表單檔案大小限制';
break;
case 3:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='網路原因部分上傳';
break;
case 4:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='沒有選擇檔案';
break;
case 6:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='沒有臨時目錄';
break;
case 7:
$arrFiles['filename'][]=false;
$arrFiles['code'][]='目錄沒有寫入權限';
break;
}
http://www.bkjia.com/PHPjc/1116661.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1116661.htmlTechArticle檔案上傳,springmvc檔案上傳 檔案上傳 檔案上傳就是將用戶端的檔案上傳到伺服器端(並不是簡單的copy) 檔案上傳需要兩部分:用戶端...