5
私はブラウザに戻すZipOutputStreamを持っています。私が望むのは、ユーザーがアンカータグをクリックした後、私が持っているZipOutputStreamのファイルダウンロードのプロンプトが表示されることです。ブラウザにZipOutputStreamを返す
ZipOutputStreamをブラウザに戻すにはどうすればよいですか?
私はブラウザに戻すZipOutputStreamを持っています。私が望むのは、ユーザーがアンカータグをクリックした後、私が持っているZipOutputStreamのファイルダウンロードのプロンプトが表示されることです。ブラウザにZipOutputStreamを返す
ZipOutputStreamをブラウザに戻すにはどうすればよいですか?
昨日、まったく同じことをしなければなりませんでした。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(baos);
.... populate ZipOutputStream
String filename = "out.zip";
// the response variable is just a standard HttpServletResponse
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
response.setContentType("application/zip");
try{
response.getOutputStream().write(baos.toByteArray());
response.flushBuffer();
}
catch (IOException e){
e.printStackTrace();
}
finally{
baos.close();
}
注私はByteArrayOutputStreamラッパーとtoByteArrayを使用していますが、あなたはおそらく、標準のInputStream.read()OutputStream.write()ループとの応答に直接のOutputStreamの他のタイプを記述することができます。
私は実際にはどちらが速いかわからないが、ここではByteArrayOutputStreamの使用がメモリ意識の最も高いアプローチではないと思われる。