文件下载之返回文件流(Controller) 您所在的位置:网站首页 红米note8导数据 文件下载之返回文件流(Controller)

文件下载之返回文件流(Controller)

#文件下载之返回文件流(Controller)| 来源: 网络整理| 查看: 265

 一、    @Get("downloadTeacherTemplate")    public Object downloadTeacherTemplate(Invocation inv) throws Exception {     Map map=systemDictService.getSystemDictByCode("UPLOADIFY_DIR");     String root=(String) map.get("value");//获得文件的根目录,如:http://10.0.50.130/SaveResourse/      File file = new File(root+TEACHER_TEMPLET_FILEPATH);//TEACHER_TEMPLET_FILEPATH:文件的相对路径      InputStream inputStream=null;     inputStream = new FileInputStream(file);     String fileName="教师导入模板.xls";     String agent = inv.getRequest().getHeader("USER-AGENT");     String CONTENT_TYPE = "";     CONTENT_TYPE = CONTENT_TYPE + "; ";     // 以流的形式下载文件。   // 清空response   inv.getResponse().reset();     if (agent.contains("Firefox")) {      fileName = new String(fileName.getBytes("utf-8"), "iso8859-1");     } else {      fileName = URLEncoder.encode(fileName, "utf-8");      fileName = fileName.replace("+", "%20");     }     inv.getResponse().setHeader("Content-Disposition", "attachment;filename=\"" + fileName);     inv.getResponse().addHeader("Content-Length", "" );     inv.getResponse().setContentType(CONTENT_TYPE);     inv.getResponse().setHeader("Content-Transfer-Encoding", "binary");     inv.getResponse().setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");     inv.getResponse().setHeader("Pragma", "public");     inputStream = new FileInputStream(file);     return inputStream;  }  二、    @Get  @Post  public Object getFileStream(Invocation inv) throws IOException{   PropertiesUtil propertiesUtil = new PropertiesUtil();   String url = inv.getRequest().getRequestURI();   Map uploadifyMap=systemDictDao.getSystemDictByClassCode("UPLOADIFY_URL");  //获得文件上传永久路径   String root = String.valueOf(uploadifyMap.get("value"));   String suffix = url.replaceAll(" http://www.yunedu.cc/SaveResourse/ ", "");   String path = root + suffix;   File file = new File(path);   String fileName = file.getName();   String ext = fileName.substring(fileName.lastIndexOf(".")+1);   inv.getResponse().reset();   inv.getResponse().setHeader("Content-Disposition", "attachment;filename=\"" + fileName);   inv.getResponse().addHeader("Content-Length", ""+file.length());   inv.getResponse().setContentType(propertiesUtil.getProperty(ext));   inv.getResponse().setHeader("Content-Transfer-Encoding", "binary");   inv.getResponse().setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");   inv.getResponse().setHeader("Pragma", "public");   FileInputStream imputStream = new FileInputStream(file);   return imputStream;  }

转载于:https://my.oschina.net/zhongshao/blog/300615



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有