Download
下载的话有几种方法,下面这个,经测好使。 具体细节先不做解释,核心方法应该就是flushBuffer,再说吧,先拿来用。
@RequestMapping("download")
public void downloadFileAction(HttpServletRequest request, HttpServletResponse response) {
response.setCharacterEncoding(request.getCharacterEncoding());
response.setContentType("application/octet-stream");
FileInputStream fis = null;
try {
File file = new File("C:\\Users\\carry\\Pictures\\198109742591463b0b7396936.jpg");
fis = new FileInputStream(file);
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
IOUtils.copy(fis, response.getOutputStream());
response.flushBuffer();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}下面是第二种方法,这是我自己测试从ftp上下载文件时测试的,和上面的一样,都是粘的,但已无从考证,原理依旧不解释,等我熟悉了再说。。。
Last updated