文件下载实现

来源:互联网 发布:畅言教学软件 编辑:程序博客网 时间:2024/06/07 09:10

java代码:

@RequestMapping(value = "/download")@ResponseBodypublic 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