我有一个要求,我将允许用户选择文件列表(使用复选框),并让他通过压缩文件来下载他选择下载的所有文件,并向他显示下载提示。
我可以通过在服务器硬盘上创建zip文件并利用此文件并让用户下载文件来做到这一点,一切正常。但是我不想在硬盘上创建一个zip文件,而是想即时创建它,并让用户下载该zip文件,在任何时候,我的\approx
文件都应该没有服务器。
答案 0 :(得分:1)
在硬盘上创建文件或通过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")));
答案 1 :(得分:-1)
使用fileinputstream读取所有文件,转换为字节数组,然后在响应标头中将响应类型设置为“ content-type:application / zip”