ssm学习笔记-三种文件上传方式
首先需要引入commons-fileupload
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
MultipartFile方式
示例代码:
@RequestMapping(value = "", method = RequestMethod.POST)
@ResponseBody
public String postUpload(HttpServletRequest request, MultipartFile file) throws Exception
{
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
File dir = new File(path, fileName);
if (!dir.exists()) {
dir.mkdirs();
}
file.transferTo(dir);
return "ok";
}
CommonsMultipartFile方式
示例代码:
@RequestMapping(value = "", method = RequestMethod.POST)
@ResponseBody
public String postUpload(@RequestParam(required = false) CommonsMultipartFile file, HttpServletRequest request) throws Exception
{
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream os = new FileOutputStream(dir + "/" + fileName);
InputStream ins = file.getInputStream();
byte[] bytes = new byte[1024];
int temp;
while ((temp = ins.read(bytes)) != -1) {
os.write(bytes, 0, temp);
}
os.close();
ins.close();
return "ok";
}
CommonsMultipartResolver方式
示例代码:
@RequestMapping(value = "", method = RequestMethod.POST)
@ResponseBody
public String postUpload(HttpServletRequest request) throws Exception
{
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext()
);
if (commonsMultipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request;
MultipartFile file = multipartHttpServletRequest.getFile("file");
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
File dir = new File(path, fileName);
if (!dir.exists()) {
dir.mkdirs();
}
file.transferTo(dir);
}
return "ok";
}