1.文件上傳中需要注意的一些問題:
文件上傳的必要前提:
一、form表單的enctype必須是multipart/form-data;以二進制字節(jié)流進行提交 傳統(tǒng)接收參數(shù)的方式無效
二吮便、method屬性為post;
三磁浇、提供<input type="file"/>
借助第三方的組件實現(xiàn)文件上傳艾栋,所需jar包:commons-fileupload.jar和commons-io.jar
傳統(tǒng)方式代碼實現(xiàn):
@RequestMapping(path="/test")
public String test1(HttpServletRequest req)throws Exception {
//使用fileupload組件進行文件上傳
? ? //指定文件上傳的位置
? ? String path1 = req.getSession().getServletContext().getRealPath("/uploads/");
File file =new File(path1);
if(!file.exists()){
file.mkdirs();
}
//解析request對象派阱,得到上傳文件項
? ? DiskFileItemFactory fileitem =new DiskFileItemFactory();
//核心操作類
? ? ServletFileUpload upload =new ServletFileUpload(fileitem);
//解析request
? ? List fileItems = upload.parseRequest(req);
//遍歷
? ? for(FileItem items:fileItems){
//進行判斷跋涣,當前item對象是否是上傳文件項
? ? ? ? if(items.isFormField()){
//說明是普通表單項
? ? ? ? }else{
//說明是文件項,獲取文件名稱
? ? ? ? ? ? String name = items.getFieldName();
//把文件名稱設置成唯一值
? ? ? ? ? ? String uuid = UUID.randomUUID().toString().replace("-","");
name+=uuid+"_";
System.out.println(name);
//完成文件上傳
? ? ? ? ? ? items.write(new File(path1,name));
//刪除臨時文件;
? ? ? ? ? ? items.delete();
}
}
return "success";
}
springmvc代碼實現(xiàn):