chenjiahe
2022-12-26 5acd00fd233757a9c7616b23b195e93e3cdb605a
src/main/java/com/hx/util/DownFileUtil.java
@@ -146,4 +146,80 @@
      }
   }
   /**
    * 下载文件工具(提示选择路径)
    *
    * @param inputStream
    *            导出的文件流
    * @param fileName
    *            导出的文件名称
    */
   public static void DownFileTips(HttpServletRequest request, HttpServletResponse response, InputStream  inputStream , String fileName) {
      final String userAgent = request.getHeader("USER-AGENT");
      try {
         if(StringUtils.isEmpty(fileName)){
            throw new RuntimeException("请输入文件名称");
         }
         String filename =  "";
         if(userAgent.equals("MSIE")){//IE浏览器
            filename = URLEncoder.encode(fileName,"UTF8");
         }else if(userAgent.equals("Mozilla")){//google,火狐浏览器
            filename = new String(fileName.getBytes(), "ISO8859-1");
         }else{
            filename = URLEncoder.encode(fileName,"UTF8");//其他浏览器
         }
         InputStream fis = new BufferedInputStream(inputStream);
         byte[] buffer = new byte[fis.available()];
         fis.read(buffer);
         fis.close();
         response.addHeader("Content-Disposition", "attachment;filename="+ filename);
         OutputStream toClient= new BufferedOutputStream(response.getOutputStream());
         response.setContentType("application/vnd.ms-excel;charset=utf-8");
         toClient.write(buffer);
         toClient.flush();
         toClient.close();
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   /**
    * 下载文件工具(提示选择路径)
    *
    * @param downfile
    *            导出的文件
    * @param fileName
    *            导出的文件名称
    */
   public static void DownFileTips( HttpServletResponse response, File downfile, String fileName) {
      try {
         if(StringUtils.isEmpty(fileName)){
            fileName = downfile.getName();
         }
         String filename =  "";
         filename = URLEncoder.encode(fileName,"UTF8");//其他浏览器
         InputStream fis = new BufferedInputStream(new FileInputStream(
               downfile));
         byte[] buffer = new byte[fis.available()];
         fis.read(buffer);
         fis.close();
         response.addHeader("Content-Disposition", "attachment;filename="+ filename);
         OutputStream toClient= new BufferedOutputStream(response.getOutputStream());
         response.setContentType("application/vnd.ms-excel;charset=utf-8");
         toClient.write(buffer);
         toClient.flush();
         toClient.close();
      } catch (FileNotFoundException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}