Spring MVC 上传文件两种方式

来源:互联网 发布:hsc热力学软件 编辑:程序博客网 时间:2024/06/11 04:44

1。页面设置
表单中method="post" enctype="multipart/form-data" 
上传控件中 type="file" name="file"
2.在XML中配置文件解析器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
3.后台解析文件。
//通过xml 中id为multipartResolver的解析器,把上传的name属性值为file文件解析成CommonsMultipartFile类型的文件
@RequestMapping(value="/fileUpload",method=RequestMethod.POST)
public String fileUpload(@RequestParam("file") CommonsMultipartFile file, HttpServletRequest request) throws IOException {
System.out.println("fileName--->"+file.getOriginalFilename());
if(!file.isEmpty()){
FileOutputStream fos=new FileOutputStream("D:/"+new Date().getTime()+file.getOriginalFilename());
InputStream in=file.getInputStream();
int b=0;
while((b=in.read())!=-1){
fos.write(b);
}
fos.flush();
fos.close();
in.close();
}
request.setAttribute("result", "success1");
return "fileUpload.jsp";
}


通过继承HttpServletRequest上传(上传速度快,常用)
1。页面设置
表单中method="post" enctype="multipart/form-data" 
上传控件中 type="file" name="file"
2.在XML中配置文件解析器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
3.后台解析文件。
//通过xml 中id为multipartResolver的解析器,把上传的name属性值为file文件解析成CommonsMultipartFile类型的文件
@RequestMapping(value="/fileUploadExtend",method=RequestMethod.POST)
public String fileUploadExtend(HttpServletRequest request,HttpServletResponse response) throws IOException {
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(request.getSession().getServletContext());
if(multipartResolver.isMultipart(request)){
MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest) request;
Iterator<String> iter=multiRequest.getFileNames();
while(iter.hasNext()){
MultipartFile file=multiRequest.getFile((String)iter.next());
if(file!=null){
String fileName=new Date().getTime()+file.getOriginalFilename();
String path="D:/"+fileName;
File localFile=new File(path);
file.transferTo(localFile);
}
}
}
request.setAttribute("result", "success2");
return "fileUpload.jsp";
}
0 0