0

我通过 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 文件创建的原因是什么。

4

0 回答 0