侧边栏壁纸
博主头像
清如许博主等级

努力成长为一颗大树,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找

  • 累计撰写 58 篇文章
  • 累计创建 36 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

spring boot 实现文件的上传下载.md

清如许
2020-09-29 / 0 评论 / 0 点赞 / 528 阅读 / 2,107 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-12-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

## spring boot实现文件的上传,

我是使用maven搭建的spring boot项目,页面集成的jsp。
页面结构如下:
在这里插入图片描述
准备工作:在webapp下新建一个目录叫upload

1,页面,upload.jsp

<body>
<form method="post" action="${pageContext.request.contextPath}/file/upload" enctype="multipart/form-data">
    <input type="file" name="files">
    <input type="submit" value="上传">
</form>
</body>

2) 控制器 ,FileController.java

@Controller
@RequestMapping("/file")
public class FileController {

    private Logger logger = LoggerFactory.getLogger(getClass());

    @RequestMapping("/upload")
    public String upLoad(MultipartFile files, HttpSession session) throws IOException {
        logger.info("upload 方法执行了");
        //获取上传文件的路径
        String realPath = session.getServletContext().getRealPath("upload");
        System.out.println("--------"+realPath);
        //获取上传的文件名,
        File file1 = new File(realPath, files.getOriginalFilename());
        //执行文件上传复制
        files.transferTo(file1);
        //跳到下载页面
        return "/download.jsp";

    }
}

3) 修改上传文件大小的限制,application.properties

//配置tomcat端口号
server.port=8080
//项目访问路径
server.servlet.context-path=/maven_springboot
//jsp页面热部署
server.servlet.jsp.init-parameters.development=true
//修改上传文件大小限制为10Mb
spring.servlet.multipart.max-file-size=10485760

2,下载

1) 页面 download.jsp
这里的fileName应该是要从数据库读取出来,包括上传也是应该把上传的文件信息存到数据库,这里我就不写了。
就直接把文件写死了,

<body>
<a href="${pageContext.request.contextPath}/file/download?fileName=aaa.png">下载</a>
</body>

2)控制器, FileController

 @RequestMapping("/download")
    public void Download(String fileName, HttpServletResponse response,HttpSession session) throws Exception {
   //设置下载响应头
        response.setHeader("content-disposition","attachment;fileName"+ URLEncoder.encode(fileName,"UTF-8"));
    //获取文件路径
        String uploadPath = session.getServletContext().getRealPath("upload");

        File file = new File(uploadPath,fileName);
        ServletOutputStream outputStream = response.getOutputStream();
        FileUtils.copyFile(file,response.getOutputStream());

    }

这里要用到一个jar包,commons-io包的FileUtils工具类,
pom引入该依赖如下:

 <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

如此,一个简单的上传下载demo就算完成了

0

评论区