将这段代码进行封装后,便可以做成自己需要的下载方法了。此段代码需要注意设置
相关的响应头。比如编码、类型等。文件下载也是操作的流,所以要记得关闭。
String filePath=this.getServletContext().getRealPath("image")+
File.separator+"screen.jpeg";
System.out.println("文件路径"+filePath);
InputStream is=new FileInputStream(filePath);
//文件内容大小
int length=is.available();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/force-download");
//用户下载时所看到的文件名
String filename="screen.jpg";
//防止文件名出现乱码,所以加入下行代码
filename = URLEncoder.encode(filename,"UTF-8"); //防止标题出现乱码问题
/*设置head表头*/
response.setHeader("Content-Length",String.valueOf(length));
response.setHeader("Content-Disposition",
"attachment;filename=/""+filename +"/"");
OutputStream out= response.getOutputStream();
byte buffer[]= new byte[2048];
int len=0;
while((len=is.read(buffer))!=-1){
//out.writ
out.write(buffer, 0, len);
}
is.close();
out.flush();
out.close();