在form表单上注意enctype=”multipart/form-data”属性
和上传字段的name属性要起相同的名字,如:在学生表中的头像和附件两个字段上添加图片,那么在两个input中name的名字一样,可以都叫file,
页面上的内容:
<input type="file" name="file" id="file" onchange='PreviewImage(this)'/>上传照片</a>
<input type="file" name="file" id="file" onchange='PreviewImage(this)'/>上传照片</a>
@RequestMapping(value="/addMechanics",method=RequestMethod.POST)
public ModelAndView addMechanics(@RequestParam(value = "file", required = false) MultipartFile[] files,
HttpServletRequest request) throws Exception{
ModelAndView mv=new ModelAndView();
PageData pd=this.getPageData();
String equ_num=request.getParameter("equ_num");
String equ_name=request.getParameter("equ_name");
pd.put("equ_num", equ_num);
pd.put("equ_name", equ_name);
//图片上传路径
String Imgpath = "";//自定义图片的访问路径(要写上,不能为空)
String filepath = "";//自定义文件的保存路径(要写上,不能为空)
int filenumber = 1;
for(MultipartFile file : files){
String fileName="";
String originalFilename = file.getOriginalFilename();
if(!file.isEmpty()){
UUID uuid = UUID.randomUUID();
fileName=uuid+originalFilename;//格式化上传图片的名字
file.transferTo(new File(filepath,fileName));
fileName = Imgpath + '/' + fileName;
}
//能够实现该功能的关键点
if(filenumber==1){
pd.put("equ_photo", fileName);
}
if(filenumber==2){
//1是头像照片,2是附件照片
pd.put("maintain_file",fileName);
}
filenumber++;
}
this.sysMechanicsService.addMechanics(pd);
mv.addObject("pd", pd);
mv.setViewName("save_result");
return mv;
}
表单文件上传实践
本文介绍了一个使用Multipart/form-data进行文件上传的例子,包括如何设置表单和处理多个文件上传的过程。通过设置相同的name属性,可以同时上传多张图片,并在后端根据不同条件将它们分别保存为不同的字段。
564

被折叠的 条评论
为什么被折叠?



