SpringMVC表单提交时,多文件上传和单个文件上传有些什么区别
展开全部
基于Spring3 MVC实现基于form表单文件上传
一:杂项准备
环境搭建参考这里-http://blog.csdn.net/jia20003/article/details/8471169
二:前台页面
根据RFC1867,只要在提交form表单中声明提交方法为POST,enctype属
性声明为multipart/form-data, action声明到要提交的url即可。具体如下:
三:spring配置
使用spring3的MultipartHttpReqest来接受来自浏览器的发送的文件内容。
需要配Multipart解析器在express-servlet.xml中。内容如下:
同时还需要在maven的pom.xml文件添加apachefileupload与common-io两个包。
四:Controller中方法实现
[java] view plaincopy
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ModelAndView getUploadFile(HttpServletRequest request, HttpServletResponse response) {
System.out.println("fucking spring3 MVC upload file with Multipart form");
String myappPath = request.getSession().getServletContext().getRealPath("/");
try {
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("fucking spring3 MVC upload file with Multipart form");
// String myappPath = multipartRequest.getServletContext().getRealPath("/");
// does not work, oh my god!!
MultipartFile file = multipartRequest.getFiles("userfile1").get(0);
long size = file.getSize();
byte[] data = new byte[(int) size];
InputStream input = file.getInputStream();
input.read(data);
// create file, if no app context path, will throws access denied.
// seems like you could not create any file at tomcat/bin directory!!!
File outFile = new File(myappPath + File.separator + file.getOriginalFilename());
if(!outFile.exists()) {
outFile.createNewFile();
System.out.println("full path = " + outFile.getAbsolutePath());
} else {
System.out.println("full path = " + outFile.getAbsolutePath());
}
FileOutputStream outStream = new FileOutputStream(outFile);
outStream.write(data);
outStream.close();
input.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return new ModelAndView("welcome");
}
一:杂项准备
环境搭建参考这里-http://blog.csdn.net/jia20003/article/details/8471169
二:前台页面
根据RFC1867,只要在提交form表单中声明提交方法为POST,enctype属
性声明为multipart/form-data, action声明到要提交的url即可。具体如下:
三:spring配置
使用spring3的MultipartHttpReqest来接受来自浏览器的发送的文件内容。
需要配Multipart解析器在express-servlet.xml中。内容如下:
同时还需要在maven的pom.xml文件添加apachefileupload与common-io两个包。
四:Controller中方法实现
[java] view plaincopy
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ModelAndView getUploadFile(HttpServletRequest request, HttpServletResponse response) {
System.out.println("fucking spring3 MVC upload file with Multipart form");
String myappPath = request.getSession().getServletContext().getRealPath("/");
try {
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("fucking spring3 MVC upload file with Multipart form");
// String myappPath = multipartRequest.getServletContext().getRealPath("/");
// does not work, oh my god!!
MultipartFile file = multipartRequest.getFiles("userfile1").get(0);
long size = file.getSize();
byte[] data = new byte[(int) size];
InputStream input = file.getInputStream();
input.read(data);
// create file, if no app context path, will throws access denied.
// seems like you could not create any file at tomcat/bin directory!!!
File outFile = new File(myappPath + File.separator + file.getOriginalFilename());
if(!outFile.exists()) {
outFile.createNewFile();
System.out.println("full path = " + outFile.getAbsolutePath());
} else {
System.out.println("full path = " + outFile.getAbsolutePath());
}
FileOutputStream outStream = new FileOutputStream(outFile);
outStream.write(data);
outStream.close();
input.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return new ModelAndView("welcome");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询