在springmvc中,我们需要在applicationContext.xml配置中添加下面配置:
注释:form标签中必须要加:enctype=”multipart/form-data”这个是标准的配置。easy可佩可不配(底层已经封装),form表单也不需要添加。
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- set the max upload size100MB -->
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
<property name="defaultEncoding">
<value>utf-8</value>
</property>
</bean>
easyui中的controller层书写:
//文件上传操作
@RequestMapping("fileUpload")
@ResponseBody
//为什么用map? 个人理解是easyui中成功活着失败的消息需要用String接受。
public Map<String,Object> fileUpload(MultipartFile fm,HttpServletRequest req) throws IllegalStateException, IOException{
Map<String,Object> map=new HashMap<>();
try {
//获得服务器的目录
String realPath = req.getServletContext().getRealPath("/img");
File file =new File(realPath);
if(!file.exists()){
file.mkdirs();
}
//处理文件名称重复 .png
String sub = fm.getOriginalFilename().substring(fm.getOriginalFilename().lastIndexOf("."));
String uuid = UUID.randomUUID().toString();
//文件名称
String filename=uuid+sub;
fm.transferTo(new File(file,filename));
map.put("success",filename);
} catch (Exception e) {
map.put("errorMsg", "上传失败");
}
return map;
}