質問: response.getoutputstream(); os.write(b); os.close(); fi.close(); --------------------------------------------- ご教授お願いします。
回答: 1バイトずつ読み込んでいる&全部読み込んでから送ってるので遅いのでしょう。 ブロック単位で読む&逐次送信するといいですよ。 file zipfile = new file("ファイルパス", "temp.zip"); response.setcontenttype("application/octet-stream; charset=windows-31j"); response.setheader("content-disposition","attachment; filename=\"temp.zip\""); response.setcontentlength(zipfile.length); int len; byte[] buf = new byte[1024]; inputstream is = new fileinputstream(zipfile); servletoutputstream os = response.getoutputstream(); while((len = is.read(buf)) >= 0){ // bufのサイズまで読み込む、実際に読んだ長さはlenに入る os.write(buf, 0, len); // 読み込んだサイズ分送信する } is.close(); os.close();