举个简单的例子,这里是用谷歌浏览器,是默认下载路径的。
后台:
filepath:服务器文件路径 filename:服务器文件名
@RequestMapping(value = "/downloadzip", method = RequestMethod.GET) @ResponseBody public void downloadzip(HttpServletRequest request, HttpServletResponse response) { BufferedInputStream bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; String filePath = request.getParameter("filePath").trim(); String fileName = request.getParameter("fileName").trim(); response.setContentType("charset=UTF-8"); response.addHeader("Content-Disposition","attachment;filename="+fileName); File file = new File(filePath+File.separator+fileName); try { if(!file.exists()){ throw new RealEstateException("文件不存在,目标文件路径为"+filePath); } fis = new FileInputStream(file); bis = new BufferedInputStream(fis); fos = response.getOutputStream(); bos = new BufferedOutputStream(fos); int byteRead = 0; byte[] b = new byte[5*1024]; while((byteRead = bis.read(b)) != -1){ bos.write(b,0,byteRead); } bos.flush(); }catch (IOException e){ e.printStackTrace(); ExceptionUtils.LoadLog("IO流异常"+e); }finally { try { if(fis!=null){ bos.close(); fos.close(); bis.close(); fis.close(); } }catch (IOException e){ e.printStackTrace(); ExceptionUtils.LoadLog("IO流异常"+e); } } }
前段:
var filePath = "C:\\"; var fileName = "QueryResult.zip"; window.location.href=ctx+"/app/downloadzip/?filePath=" + filePath + "&fileName=" + fileName;