栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过spring @RestController提供压缩下载的文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过spring @RestController提供压缩下载的文件?

基于此处的解决方案(对于Plain

Servlet
),您也可以对基于Spring MVC的控制器执行相同的操作。

@RequestMapping(value = "/export", method = RequestMethod.GET)public void getFile(OutputStream out) {    FileSystemResource resource = new FileSystemResource("c:file.csv");     try (ZipOutputStream zippedOut = new ZipOutputStream(out)) {        ZipEntry e = new ZipEntry(resource.getName());        // Configure the zip entry, the properties of the file        e.setSize(resource.contentLength());        e.setTime(System.currentTimeMillis());        // etc.        zippedOut.putNextEntry(e);        // And the content of the resource:        StreamUtils.copy(resource.getInputStream(), zippedOut);        zippedOut.closeEntry();        zippedOut.finish();    } catch (Exception e) {        // Do something with Exception    }        }

ZipOutputStream
基于响应创建了一个
OutputStream
(您可以简单地将其注入到方法中)。然后为压缩后的流创建一个条目并将其写入。

除了,

OutputStream
您还可以连接,
HttpServletResponse
以便您可以设置文件名和内容类型。

@RequestMapping(value = "/export", method = RequestMethod.GET)public void getFile(HttpServletResponse response) {    FileSystemResource resource = new FileSystemResource("c:file.csv");     response.setContentType("application/zip");    response.setHeader("Content-Disposition", "attachment; filename=file.zip");    try (ZipOutputStream zippedOut = new ZipOutputStream(response.getOutputStream())) {        ZipEntry e = new ZipEntry(resource.getName());        // Configure the zip entry, the properties of the file        e.setSize(resource.contentLength());        e.setTime(System.currentTimeMillis());        // etc.        zippedOut.putNextEntry(e);        // And the content of the resource:        StreamUtils.copy(resource.getInputStream(), zippedOut);        zippedOut.closeEntry();        zippedOut.finish();    } catch (Exception e) {        // Do something with Exception    }        }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号