首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringMVC-关于文件的下载

SpringMVC-关于文件的下载

原创
作者头像
程序员NEO
发布2023-10-01 20:09:06
发布2023-10-01 20:09:06
3440
举报

关于文件的下载,示例代码如下。

代码语言:java
复制
/**
 * @author: BNTang
 */
@Controller
public class MyFirstController {
    @RequestMapping("/download")
    public ResponseEntity<byte[]> download(HttpSession httpSession) throws Exception {
        // 1.获取 ServletContext
        ServletContext servletContext = httpSession.getServletContext();

        // 2.获取路径
        String realPath = servletContext.getRealPath("/images/zdy.jpg");

        // 3.创建一个输入流
        FileInputStream fileInputStream = new FileInputStream(realPath);
        byte[] bytes = new byte[fileInputStream.available()];

        // 4.将文件流读取到数组当中
        fileInputStream.read(bytes);

        // 5.创建请求头
        HttpHeaders httpHeaders = new HttpHeaders();

        // 6.对文件名进行编码
        String fileEncode = URLEncoder.encode("周冬雨.jpg", "UTF-8");

        // 7.告诉浏览器以附件的形式下载文件
        httpHeaders.add("Content-Disposition", "attachment;filename=" + fileEncode);

        // 8.设置响应码
        HttpStatus httpStatus = HttpStatus.OK;

        ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, httpHeaders, httpStatus);

        // 9.关闭流
        fileInputStream.close();

        return responseEntity;
    }
}

编写好了之后启动工程,发送请求效果如下所示。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档