繁体   English   中英

在服务器(硬盘)上未创建ZIP文件的情况下,如何让客户端下载包含自定义选定文件的ZIP文件?

[英]Without creating ZIP file on server (hard disk) how to let client download a ZIP file with custom selected files?

我有一个要求,我将允许用户选择文件列表(使用复选框),并让他通过压缩它们选择下载的所有文件,并显示下载提示。

我可以通过在服务器硬盘上创建zip文件并利用此文件并让用户下载文件来做到这一点,一切都很好。 但是我不想在硬盘上创建一个zip文件,而是想即时创建它,并让用户下载该zip文件,在任何时候我的服务器上都不应有.zip文件。

在硬盘上创建文件或通过spring-mvc-endpoint返回文件没有区别。 只需确保将ZipOutputStream重定向到您的response.getOutputStream()

例如:

response.setHeader("Content-disposition","attachment; filename=myfile.zip");         
ZipOutputStream stream = new ZipOutputStream(response.getOutputStream());
ZipEntry zipEntry = new ZipEntry(myFile);
zipStream.putNextEntry(zipEntry);
//write your file-content to zipstream e.g. like this
zipStream.write(Files.readAllBytes(Paths.get("myfile")));

使用fileinputstream读取所有文件,转换为字节数组,然后在响应标题中将响应类型设置为“ content-type:application / zip”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM