我使用Springboot,我想生成zip文件,然后返回前端。
@PostMapping(value="/export", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<ZipOutputStream> export() {
// customService.generateZipStream() is a service method that can
//generate zip file using ZipOutputStream and then return this stream
ZipOutputStream zipOut = customService.generateZipStream();
return ResponseEntity
.ok()
.header("Content-Disposition", "attachment;filename=export.zip")
.header("Content-Type","application/octet-stream")
.body(zipOut)
}
spring.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
// pseudocode
.body(out -> {
ZipOutputStream zipOut = new ZipOutputStream(out));
zipOut.putEntry(...);
zipOut.write(...);
zipOut.closeEntry();
... balabala
}
您可以尝试将其作为字节数组发回:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ZipOutputStream zipOut = customService.generateZipStream();
int count;
byte data[] = new byte[2048];
BufferedInputStream entryStream = new BufferedInputStream(is, 2048);
while ((count = entryStream.read(data, 0, 2048)) != -1) {
zos.write( data, 0, count );
}
entryStream.close();
return ResponseEntity
.ok()
.header("Content-Disposition", "attachment;filename=export.zip")
.header("Content-Type","application/octet-stream")
.body(bos.toByteArray());
考虑您需要将返回类型更改为responseentity
。
问题内容: 我有一种生成带有一些数据库记录的CSV文件的方法 我希望该方法是一个端点,以便从任何类型的客户端(Web或移动设备)调用它以下载它。在Google Cloud Endpoint文档中 ,没有关于File作为有效返回类型的信息。我如何创建并终结返回文件的文件? 问题答案: 这是将文件从端点保存到Cloud Storage并返回用于下载文件的URL的方法。 1 /在您的项目控制台中激活Go
我有一个函数,可以从文件列表中创建一个Zip文件。是否可以在不保存在磁盘上的情况下返回Zip文件?我需要这个文件,因为我必须使用zip文件作为另一个函数的参数。我不确定ByteStream是否适合我。 编辑:添加用例 其想法是创建一个zip文件,并使用Watson的VisualRecognition服务的CreateClassifications方法。 构建器接受zip文件作为参数。 理解 根据A
问题内容: 我想创建受密码保护的ZIP: 但这只是加密zip中的文件,但我可以打开此zip并查看其中的文件 问题答案: 由于专利问题,Zip4j不支持文件列表的加密。 参见:http : //www.lingala.net/zip4j/forum/index.php?topic=104.0 更新: 如链接中所述。zip规范不包括文件列表的加密。要隐藏文件名,您可以创建一个zip文件,其中包含您的文
有谁知道用zlib是否可以创建zip格式?怎么做?
我有一个API,它使用archiver模块创建一个zip文件,我想在其中将zip作为响应传递回客户端并下载它。 这就是我创建zip的API的样子: 这里还有另一个API供参考,它展示了我是如何习惯于将数据发送回客户端的: 如何将zip作为响应发送回并在客户端将其下载到磁盘?
问题内容: 我必须使用SFTP从ZIP存档(只有一个文件,我知道它的名称)中获取文件内容。我唯一拥有的是ZIP的。大多数示例说明如何使用以下语句获取内容: 但是正如我所说,我的本地计算机上没有ZIP文件,也不想下载它。是够看了? UPD: 这是我的方法: 问题答案: 好吧,我已经做到了: 它可以帮助我阅读ZIP的内容而无需写入另一个文件。