Java を使用して、.zip ファイルをサーバーの場所 (Unix 環境) にエクスポートしました。(例: 123_abc.txt を含む 123_abc.zip) 場所を確認すると、適切な .zip ファイルが作成され、さらにその中に .txt ファイルが含まれています。
その場所から同じファイルをダウンロードしようとしているときに Java を介して、ヘッダー情報が「application/zip」として渡されます。ダウンロードされるファイルは 123_abc.zip で、解凍すると OUT ファイルである 123_abc.zip が内部に存在します。さらに解凍すると、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ファイルの作成を担当する理由は何ですか.