<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      將本地Excel文件壓縮為zip返回下載(解決壓縮文件名亂碼)

       String zipPath =basePath+File.separator+"ZIP"+File.separator;
              File zip = new File(basePath+File.separator+"ZIP"+File.separator+fileName+Time+".zip");
              filesToZip(srcfile, zip);
              response.setContentType("application/octet-stream");
              response.setHeader("Location", zip.getName());
              String fileName =  new String(zip.getName().getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1);
              response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
              try {
                  OutputStream outputStream = response.getOutputStream();
                  InputStream inputStream = new FileInputStream(zip);
                  byte[] buffer = new byte[1024];
                  int i = -1;
                  while ((i = inputStream.read(buffer)) != -1) {
                      outputStream.write(buffer, 0, i);
                  }
                  inputStream.close();
              } catch (Exception e) {
                  e.printStackTrace();
              } finally {
                  delAllFile(zipPath);
              }

      將日期段內的數據按模板生成Excel,存放于日期文件夾下即可,網上有很多生成Excel的代碼,這里略過

      本地按日期生成的Excel,路徑分層 /日期/文件/ 前端訪問帶起始和結束時間,計算天數然后查回文件,將文件放集合再轉為File[],調用filesToZip來壓縮為一個壓縮包,返回給response的outputStream 即可

      public void filesToZip(File[] srcFiles, File zipFile) {
              // 判斷壓縮后的文件存在不,不存在則創建
              if (!zipFile.exists()) {
                  try {
                      zipFile.createNewFile();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              // 創建 FileOutputStream 對象
              FileOutputStream fileOutputStream = null;
              // 創建 ZipOutputStream
              ZipOutputStream zipOutputStream = null;
              // 創建 FileInputStream 對象
              FileInputStream fileInputStream = null;
              try {
                  // 實例化 FileOutputStream 對象
                  fileOutputStream = new FileOutputStream(zipFile);
                  // 實例化 ZipOutputStream 對象
                  zipOutputStream = new ZipOutputStream(fileOutputStream);
                  // 創建 ZipEntry 對象
                  ZipEntry zipEntry = null;
                  // 遍歷源文件數組
                  for (int i = 0; i < srcFiles.length; i++) {
                      // 將源文件數組中的當前文件讀入 FileInputStream 流中
                      fileInputStream = new FileInputStream(srcFiles[i]);
                      // 實例化 ZipEntry 對象,源文件數組中的當前文件
                      zipEntry = new ZipEntry(srcFiles[i].getName());
                      zipOutputStream.putNextEntry(zipEntry);
                      // 該變量記錄每次真正讀的字節個數
                      int len;
                      // 定義每次讀取的字節數組
                      byte[] buffer = new byte[1024];
                      while ((len = fileInputStream.read(buffer)) > 0) {
                          zipOutputStream.write(buffer, 0, len);
                      }
                  }
                  zipOutputStream.closeEntry();
                  zipOutputStream.close();
                  fileInputStream.close();
                  fileOutputStream.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }

      最后將生成的臨時zip文件刪除

       public static boolean delAllFile(String path) {
              boolean flag = false;
              File file = new File(path);
              if (!file.exists()) {
                  return flag;
              }
              if (!file.isDirectory()) {
                  return flag;
              }
              String[] tempList = file.list();
              File temp = null;
              for (int i = 0; i < tempList.length; i++) {
                  if (path.endsWith(File.separator)) {
                      temp = new File(path + tempList[i]);
                  } else {
                      temp = new File(path + File.separator + tempList[i]);
                  }
                  if (temp.isFile()) {
                      temp.delete();
                  }
                  if (temp.isDirectory()) {
                      delAllFile(path + "/" + tempList[i]);// 先刪除文件夾里面的文件
                      flag = true;
                  }
              }
              return flag;
          }

       

       

       

      當然,打包下載可以是日志文件等任何文件

       

      posted @ 2023-02-07 12:04  卷心菜的奇妙歷險  閱讀(231)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻无码中文字幕| 激情综合五月| 国产AV大陆精品一区二区三区| 亚洲一区二区精品动漫| 99riav国产精品视频| 九九热精品在线视频免费| 国内综合精品午夜久久资源| 欧美丰满熟妇乱XXXXX网站| 疯狂做受XXXX高潮国产| 久久久精品波多野结衣av | 桦川县| 无套内谢少妇高清毛片| 视频一区视频二区中文字幕| 丁香婷婷无码不卡在线| 色综合久久久久综合体桃花网| 久久精品国产99麻豆蜜月| 日本一区三区高清视频| 欧美浓毛大泬视频| 久久一日本道色综合久久| 狠狠色狠狠综合久久| 色偷偷亚洲女人天堂观看| 中文字幕日韩国产精品| 农安县| 国产精品中文字幕自拍| 亚洲乱妇老熟女爽到高潮的片| 国产成人亚洲无码淙合青草| 亚洲人成网站在小说| 精品国产一区二区在线视| 青草99在线免费观看| 国产精品va在线观看h| 日韩一区在线中文字幕| 国产精品99久久久久久董美香| 久久青青草原精品国产app| 草草浮力影院| 日韩无专区精品中文字幕| 国产成年码av片在线观看| 丁香五月网久久综合| 少妇午夜啪爽嗷嗷叫视频| 日韩中文字幕亚洲精品| 亚洲中文字幕久久精品码| 无码精品人妻一区二区三区湄公河|