springmvc 文件上传, 文件下载

装备工作 :

在项目的lib文件中添加commons-fileupload-1.3.3.jar, commons-io-2.5.jar


一.单文件上传 

1.在springMVC-servlet.xml(及springmvc的配置文件中)中

注册文件上传请求解析器 : (不可缺, 缺少了controller无法将request解析为MultipartHttpServletRequest)

<bean id = "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

2.前端提交的文件上传表单 :

<form action="uploadimage.spring" method = "post" enctype = "multipart/form-data">
  <input type = "file" name = "uploadfile"/>
<input type = "submit" value = "点击上传"/>
</form>

3.创建文件上传的controller

@Controller
public class UploadGoodImage {
  private Log logger = LogFactory.getLog(getClass());
  @RequestMapping(value = "uploadimage")
  public void SaveGoodImage(MultipartHttpServletRequest request, HttpServletResponse response){
      MultipartFile file = request.getFile("uploadfile");
      String file_name = file.getOriginalFilename();
    InputStream is = file.getInputStream();
      .....
}

二. 多文件上传

1.如上

2.前端提交的文件上传表单

<form action="uploadimage.spring" method = "post" enctype = "multipart/form-data">
  <input type = "file" name = "uploadfile
1"/>
  <input type = "file" name = "uploadfile2"/>
  <input type = "file" name = "uploadfile3"/>

<input type = "submit" value = "点击上传"/>

</form>

3.创建文件上传的controller

@Controller
public class UploadGoodImage {
   private Log logger = LogFactory.getLog(getClass());
   @RequestMapping(value = "uploadimage")
   public void SaveGoodImage(MultipartHttpServletRequest request, HttpServletResponse response){
      Map<String, MultipartFile> fileMap = request.getFileMap();

Set<String> filenameSet = fileMap.keySet();
     InputStream is = .....
}


三 .文件下载

创建controller

@Controller
public class DownLoadFile {


  private Log logger = LogFactory.getLog(getClass());
  @RequestMapping(value = "downloadfile")
  public void DownLoad(HttpServletRequest request, HttpServletResponse response){


  logger.info("进来文件下载了");
  String filepath = request.getSession().getServletContext().getRealPath("good_image/trouser_image");
  File file = new File(filepath, "trouser_1.jpg");
  FileInputStream fis = null;
  response.setHeader("Content-Disposition","attachment;fileName=" + file.getName());
  response.setCharacterEncoding("application/octet-stream;charset=UTF-8");
  response.setHeader("Content-Length", String.valueOf(file.length()));
  OutputStream os = null;
  try {
  fis = new FileInputStream(file);

os = response.getOutputStream();

  ....

catch(IOException e){

}

以上就是我的总结,希望帮助到你


猜你喜欢

转载自blog.csdn.net/m0_37838381/article/details/77365931