我通过 java 将 .zip 文件导出到服务器位置(Unix 环境)。(例如:123_abc.zip,其中包含 123_abc.txt) 在验证位置时,会创建适当的 .zip 文件,其中还包含 .txt 文件。
通过 java 在尝试从该位置下载相同文件时,标头信息作为“application/zip”传递。下载的文件是 123_abc.zip,解压后里面有 123_abc.zip,这是一个 OUT 文件。进一步解压得到 123_abc.txt。
.zip 中存在的这个 OUT 文件不是预期的。请注意:当正在执行导出/下载 .zip 文件任务的应用程序部署在门户应用程序中时,会观察到这种情况。在没有门户的情况下,我的代码可以正常工作,并且不会创建 OUT 文件。(门户是一个基于菜单的应用程序,它反过来托管我的应用程序)
代码片段:
FileInputStream in =
new FileInputStream("/opt/xxx/xxx/123_abc.zip");
response.setContentType("application/zip");
response.setHeader(Content-Disposition,attachment;filename="123_abc.zip");
ServletOutputStream out = response.getOutputStream();
byte[] bytes = new byte[1024];
while((length=in.read(bytes)) != -1){
out.write(bytes, 0, length);
}
in.close();
out.flush();
out.close();
请让我知道是否有人遇到过类似的情况/造成 OUT 文件创建的原因是什么。