jsp页面
<html>
<head><meta charset="utf-8">
<title>图片上传</title>
<script>
function viewmypic(mypic,upfile) {
if(upfile.files && upfile.files[0]){
mypic.style.display="";
//火狐下,直接设img属性
//mypic.src = upfile.files[0].getAsDataURL();
//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
mypic.src = window.URL.createObjectURL(upfile.files[0]);
}else{
//IE下
if (upfile.value){
mypic.src=upfile.value;
mypic.style.display="";
mypic.border=1;
}
}
}
</script>
</head>
<body>
<input name="upfile" type="file" id="upfile" size="40" οnchange="viewmypic(showimg,this);" />
< img name="showimg" id="showimg" src="" style="display:none;" alt="预览图片" />
</body>
</html>
控制器
public String updateByIdByDeptid(Model model,HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException {
Patient2 patient2s=new Patient2();
patient2s.setIdnum(request.getParameter("idnum"));
String introduce = request.getParameter("introduce").trim();
patient2s.setIntroduce(introduce);
String uploadaddress=request.getParameter("uploadaddress");
patient2s.setUploadaddress(uploadaddress);
CommonsMultipartResolver cr=new CommonsMultipartResolver(request.getSession().getServletContext());
List<String> urls=new ArrayList<>();
if(cr.isMultipart(request)) {
//判断当前请求是否有文件上传
MultipartHttpServletRequest ms=(MultipartHttpServletRequest) request;
//获取所有将上传的文件名
Iterator<String> it=ms.getFileNames();
while(it.hasNext()) {
//通过文件名获取该文件
MultipartFile file=ms.getFile(it.next());
if(file!=null) {
//String filename= UUID.randomUUID()+file.getOriginalFilename();
String filename=file.getOriginalFilename();
String path=request.getSession().getServletContext().getRealPath("/")+"upload/"+filename;
File localfile=new File(path);
urls.add("/upload/"+filename);
model.addAttribute("patient2s",patient2s);
File dirFile = new File(request.getSession().getServletContext().getRealPath("/")+"upload");
// 如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists()) {
dirFile.mkdir();
}
file.transferTo(localfile);
}
}
for (String url : urls) {
patient2s.setUploadaddress(url);
service2.updateByIdByDeptid(patient2s);
}
}
return "forward:/reception/selectPatient2.action";
}
springmvc.xml配置
</bean>
<!-- 文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"></property>
<property name="maxUploadSize" value="200000000"></property> <!-- 最大上传文件大小 200kb,注意是多个文件的和 -->
<property name="maxInMemorySize" value="10960000"></property>
</bean>