java——实现文件下载功能

来源:互联网 发布:java接受formdata 编辑:程序博客网 时间:2024/05/17 07:57
public void download(HttpServletRequest request,              HttpServletResponse response) throws FileNotFoundException {          //获取服务器端文件保存路径          String realPath = request.getSession().getServletContext().getRealPath("/");          String path = realPath+"文件.txt";          //下载          try {              // path是指欲下载的文件的路径。              File file = new File(path);              // 取得文件名。              String filename = file.getName();              // 取得文件的后缀名。              String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();                // 以流的形式下载文件。              InputStream fis = new BufferedInputStream(new FileInputStream(path));              byte[] buffer = new byte[fis.available()];              fis.read(buffer);              fis.close();              // 清空response              response.reset();              // 设置response的Header              response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("gb2312"),"ISO8859-1"));              response.addHeader("Content-Length", "" + file.length());              OutputStream toClient = new BufferedOutputStream(response.getOutputStream());              response.setContentType("application/octet-stream");              toClient.write(buffer);              toClient.flush();              toClient.close();          } catch (IOException ex) {              ex.printStackTrace();          }        }  

请求方法:

window.location.href = encodeURI("forecast/download");

这样不用使用a标签来请求 直接在js中调用即可。


0 0