apache IoUtilを使用してストリームをドッキングし、ファイルのダウンロードを実現
この間、ファイルのダウンロードをしましたが、従来のやり方では、循環操作の出力ストリームを書くのが面倒で、基本的にはコピーで、読み書きも不便でした.
気が狂ってIOUtilsを変えたcopyメソッドは操作に成功し、簡潔に書き、コードを見ています.
気が狂ってIOUtilsを変えたcopyメソッドは操作に成功し、簡潔に書き、コードを見ています.
//
String myfileName=new String(filename.getBytes());
//
String filepath=request.getSession().getServletContext().getRealPath("/test.jpg");
File myfile = new File(filepath);
// response
response.reset();
// response Header
response.addHeader("Content-Disposition", "attachment;filename=" + myfileName );
response.addHeader("Content-Length", "" + myfile.length());
response.setContentType("application/octet-stream");
// servlet
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
InputStream fis = new BufferedInputStream(new FileInputStream(file));
// ioutil ,
IOUtils.copy(fis, toClient);
toClient.flush();
//
fis.close();
toClient.close();