【发布时间】:2019-06-19 11:36:11
【问题描述】:
试图读取以字节数组形式存储在数据库中的 zip 文件。
.zip 正在使用以下代码下载,但 zip 中包含的文件大小为零。没有数据。
我已经回答了很多问题,但不确定以下代码有什么问题。
请帮忙。
@RequestMapping(value = ApplicationConstants.ServiceURLS.TRANSLATIONS + "/{resourceId}/attachments", produces = "application/zip")
public void attachments(HttpServletResponse response, @PathVariable("resourceId") Long resourceId) throws IOException {
TtTranslationCollection tr = translationManagementDAO.getTranslationCollection(resourceId);
byte[] fileData = tr.getFile();
// setting headers
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("Content-Disposition", "attachment; filename=\"attachements.zip\"");
ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream());
ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(fileData));
ZipEntry ent = null;
while ((ent = zipStream.getNextEntry()) != null) {
zipOutputStream.putNextEntry(ent);
}
zipStream.close();
zipOutputStream.close();
}
【问题讨论】:
-
你已经有一个拉链。直接将
byte[]写入OutputStream。不需要拉链的东西。 -
@M.Deinum,谢谢你成功了。我以前没有使用过这个文件程序。
标签: java spring spring-mvc zipoutputstream zipinputstream