gpt4 book ai didi

java - 保存时 HttpServletResponse 提示输入文件名

转载 作者:行者123 更新时间:2023-12-01 13:40:11 29 4
gpt4 key购买 nike

我使用类似于下面的代码来返回一个 zip 文件作为 SpringMVC 请求的附件。整个事情运行得很好,当我向 localhost/app/getZip 发出请求时,我能够下载一个名为 hello.zip 的文件。

我的问题是,如何提示用户输入文件名。目前,在 FireFox25.0 上,它会自动假定名称为“hello.zip”,而无需在“打开”或“保存”选项上更改文件名。

    @RequestMapping("getZip")
public void getZip(HttpServletResponse response)
{
OutputStream ouputStream;
try {
String content = "hello World";
String archive_name = "hello.zip";
ouputStream = response.getOutputStream();
ZipOutputStream out = new ZipOutputStream(ouputStream);
out.putNextEntry(new ZipEntry(“filename”));
out.write(content);
response.setContentType("application/zip");
response.addHeader("Content-Disposition", "attachment; filename="+ archive_name);
out.finish();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

TL;DR:使用 HttpServletResponse 我希望用户提供文件名,而不是在 header 中传递文件名。

最佳答案

带有RequestMethod.GET方法
网址:http://localhost/app/getZip?filename=hello.zip

@RequestMapping(value = "getZip/{filename}", method = RequestMethod.GET)
public void getZip(HttpServletResponse response, @PathVariable String filename)
{
OutputStream ouputStream;
try {
String content = "hello World";
String archive_name = "hello.zip";
ouputStream = response.getOutputStream();
ZipOutputStream out = new ZipOutputStream(ouputStream);
out.putNextEntry(new ZipEntry("filename"));
out.write(content);
response.setContentType("application/zip");
response.addHeader("Content-Disposition", "attachment; filename="+ archive_name);
out.finish();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

关于java - 保存时 HttpServletResponse 提示输入文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20881144/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com