SpringMVC的文件上传与下载

来源:互联网 发布:网络吉祥话 编辑:程序博客网 时间:2024/04/28 21:46

1,文件的上传需要两个核心jar包:
这里写图片描述

2,applicationContext.xml
这里写图片描述

3,写控制器方法

import org.apache.commons.io.FileUtils;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpSession;import java.io.File;@Controllerpublic class FileAction {    @RequestMapping("/testUploadFile.do")    public @ResponseBody    String doTestUpload(@RequestParam MultipartFile[] uploadFiles, HttpSession session) throws Exception {        for (MultipartFile uploadFile : uploadFiles) {            if (uploadFile.getSize() > 0) {                //获取文件名作为保存的文件名                String fileName = uploadFile.getOriginalFilename();                if (fileName.endsWith("jpg") || fileName.endsWith("PNG")) {//限制文件类型                    //前半部分路径,目录,将WebRoot下一个名称为images的文件夹转换为绝对路径                    String leftPath = session.getServletContext().getRealPath("/images");                    //进行路径拼接 = 前半部分加上文件名                    File file = new File(leftPath, fileName);                    uploadFile.transferTo(file);                } else {                    return "file type error";                }            } else {                return "upload fail";            }        }        return "upload success";    }    @RequestMapping("/testDownload.do")    public @ResponseBody    ResponseEntity<byte[]> doTestDownload() throws Exception {        File file = new File("D:\\BaiduNetdiskDownload\\a.jpg");        HttpHeaders httpHeaders = new HttpHeaders();        String fileName = new String("你好.jpg".getBytes("UTF-8"), "iso-8859-1");//为了解决中文乱码问题        httpHeaders.setContentDispositionFormData("attachment", fileName);        httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);        return new ResponseEntity<>(FileUtils.readFileToByteArray(file), httpHeaders, HttpStatus.CREATED);    }}

springMVC文件上传和下载的基本思路就是这样。

原创粉丝点击