SpringMVC实现文件的上传和下载

1、文件上传

1.1 导入依赖


    commons-fileupload
    commons-fileupload
    1.3.1

	

    commons-io
    commons-io
    2.4

1.2 设置文件上传解析器

bean的名字是固定的:multipartResolver


    
        
        
    

1.3 jsp页面

文件上传 <%--必须设置 表单的提交类型:"multipart/form-data"--%>

1.4 新建文件上传的Controller类

@Controller
public class UploadFile {
    /*文件上传*/
    @Autowired
    private ServletContext servletContext;

    @RequestMapping("/upload")
    public ModelAndView file(String filename, MultipartFile file) throws Exception{
        /*把文件对象以流形式,写入到目标文件夹中(只能保存到target文件夹中)*/
        String realPath = servletContext.getRealPath("/");
        /*自定义保存文件的文件名*/
        String path = realPath + new Date().getTime() + file.getOriginalFilename();
        /*加载*/
        File newfile = new File(path);
        /*执行*/
        file.transferTo(newfile);
        return null;
    }
}

2、文件下载

2.1 jsp页面

文件下载
输入要下载的文件名

2.2 新建文件下载的Controller类


@Controller
public class DownloadFile {
    /*文件下载*/
    @Autowired
    private ServletContext context;

    @RequestMapping("/download")
    public ModelAndView download(String filename, HttpServletResponse response) throws Exception{

        /*设置文件下载的响应头*/
        response.setContentType("application/x-msdownload");

        response.setHeader("Content-Disposition","attachment;filename="+filename);


        //设置图片所在路径
        String realpath = context.getRealPath("/");
        //执行
        Files.copy(Paths.get(realpath,filename),response.getOutputStream());

        return null;
    }

}


3、注意:

1.SpringMVC上传必须配置文件上传解析器"org.springframework.web.multipart.commons.CommonsMultipartResolver",解析器的id必须为"multipartResolver"
2.做文件上传的form表单的提交方式必须为"post",同时表单的提交类型为:“multipart/form-data”
3.控制器的方法可以使用MultipartFile对象,接收上传的文件
4.SpringMVC没有对文件的下载做封装

你可能感兴趣的:(Web框架,SpringMVC,文件上传,文件下载,实现)