Java实现文件下载
用java实现将文件下载到客户端。本方法使用了浏览器的弹窗进行下载,所下载的文件位置位于项目中。
public void dw_pyszfgjjjcjshdb(HttpServletResponse response,HttpSession session) throws IOException {
//获取文件路径 (File.separator 分隔符)
String url=this.getClass().getClassLoader().getResource("").getPath()+"file"+File.separator+"濮阳市住房公积金缴存基数核定表.xls";
//创建一个File类对象,路径为url
File file=new File(url);
//获取文件名
String filename=file.getName();
//创建一个带缓冲区的字节输入流(参数为文件字节输入流对象)
InputStream inputStream=new BufferedInputStream(new FileInputStream(url));
//创建一个等于文件字节大小的数组
byte[] buffer=new byte[inputStream.available()];
//将字节数据读入buffer数组中
inputStream.read(buffer);
//关闭输入流
inputStream.close();
设置响应头
response.reset();
response.setHeader("Content-Disposition","attachment;filename="+new String(filename.replaceAll(" ","").getBytes("gbk"),"iso8859-1"));
response.setHeader("Content-Length",""+file.length());
response.setContentType("application/octet-stream");
//创建一个带缓冲区的字节输出流
OutputStream outputStream=new BufferedOutputStream(response.getOutputStream());
//将数组中的字节数据读出
outputStream.write(buffer);
//冲刷缓冲区
outputStream.flush();
//关闭输出流
outputStream.close();
}