最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA 根據(jù)Url把多文件打包成ZIP下載實例

 更新時間:2017年08月11日 17:14:02   作者:莫哈_  
這篇文章主要介紹了JAVA 根據(jù)Url把多文件打包成ZIP下載的相關資料,需要的朋友可以參考下

壓縮文件代碼工具類:

public class UrlFilesToZip {
 private static final Logger logger = LoggerFactory.getLogger(UrlFilesToZip.class);
 //根據(jù)文件鏈接把文件下載下來并且轉成字節(jié)碼
 public byte[] getImageFromURL(String urlPath) {
  byte[] data = null;
  InputStream is = null;
  HttpURLConnection conn = null;
  try {
   URL url = new URL(urlPath);
   conn = (HttpURLConnection) url.openConnection();
   conn.setDoInput(true);
   // conn.setDoOutput(true);
   conn.setRequestMethod("GET");
   conn.setConnectTimeout(6000);
   is = conn.getInputStream();
   if (conn.getResponseCode() == 200) {
    data = readInputStream(is);
   } else {
    data = null;
   }
  } catch (MalformedURLException e) {
   logger.error("MalformedURLException", e);
  } catch (IOException e) {
   logger.error("IOException", e);
  } finally {
   try {
    if (is != null) {
     is.close();
    }
   } catch (IOException e) {
    logger.error("IOException", e);
   }
   conn.disconnect();
  }
  return data;
 }
 public byte[] readInputStream(InputStream is) {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  byte[] buffer = new byte[1024];
  int length = -1;
  try {
   while ((length = is.read(buffer)) != -1) {
    baos.write(buffer, 0, length);
   }
   baos.flush();
  } catch (IOException e) {
   logger.error("IOException", e);
  }
  byte[] data = baos.toByteArray();
  try {
   is.close();
   baos.close();
  } catch (IOException e) {
   logger.error("IOException", e);
  }
  return data;
 }
}

控制層代碼:

public void filesdown(HttpServletResponse response){
 try {
   String filename = new String("xx.zip".getBytes("UTF-8"), "ISO8859-1");//控制文件名編碼
   ByteArrayOutputStream bos = new ByteArrayOutputStream();
   ZipOutputStream zos = new ZipOutputStream(bos);
   UrlFilesToZip s = new UrlFilesToZip();
   int idx = 1;
   for (String oneFile : urls) {
    zos.putNextEntry(new ZipEntry("profile" + idx);
    byte[] bytes = s.getImageFromURL(oneFile);
    zos.write(bytes, 0, bytes.length);
    zos.closeEntry();
    idx++;
   }
   zos.close();
   response.setContentType("application/force-download");// 設置強制下載不打開
   response.addHeader("Content-Disposition", "attachment;fileName=" + filename);// 設置文件名
   OutputStream os = response.getOutputStream();
   os.write(bos.toByteArray());
   os.close();
  } catch (FileNotFoundException ex) {
   logger.error("FileNotFoundException", ex);
  } catch (Exception ex) {
   logger.error("Exception", ex);
  }
 }
 }

注意:

1. String filename = new String(“xx.zip”.getBytes(“UTF-8”), “ISO8859-1”);包裝zip文件名不發(fā)生亂碼。

2.一定要注意,否則會發(fā)生下載下來的壓縮包無法解壓。在給OutputStream 傳值之前,一定要先把ZipOutputStream的流給關閉了!

總結

以上所述是小編給大家介紹的JAVA 根據(jù)Url把多文件打包成ZIP下載,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Cookie的工作原理和應用詳解

    Cookie的工作原理和應用詳解

    Cookies是 web站點放置到你的硬盤上的程序。它們駐留在你的計算機上收集關于你在因特網(wǎng)上所做的一切事情的信息,并且 web站點可以在任何時候讀取到Cookies收集到的所有信息
    2021-06-06
  • Java PriorityQueue數(shù)據(jù)結構接口原理及用法

    Java PriorityQueue數(shù)據(jù)結構接口原理及用法

    這篇文章主要介紹了Java PriorityQueue數(shù)據(jù)結構接口原理及用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • SpringSceurity實現(xiàn)短信驗證碼功能的示例代碼

    SpringSceurity實現(xiàn)短信驗證碼功能的示例代碼

    這篇文章主要介紹了SpringSceurity實現(xiàn)短信驗證碼功能的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Spring中的@Scope注解詳細講解及示例

    Spring中的@Scope注解詳細講解及示例

    這篇文章主要介紹了Spring中的@Scope注解詳細講解及示例,@Scope注解是 Spring IOC 容器中的一個作用域,在 Spring IOC 容器中,他用來配置Bean實例的作用域對象,需要的朋友可以參考下
    2023-11-11
  • Java使用Ajax實現(xiàn)跨域上傳圖片功能

    Java使用Ajax實現(xiàn)跨域上傳圖片功能

    這篇文章主要介紹了Java使用Ajax實現(xiàn)跨域上傳圖片功能,需要的朋友可以參考下
    2017-09-09
  • JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    在一個程序執(zhí)行的過程中各條語句的執(zhí)行順序對程序的結果是有直接影響的,這篇文章主要給大家介紹了關于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • SpringBoot事務鉤子函數(shù)的使用方式

    SpringBoot事務鉤子函數(shù)的使用方式

    本文介紹了SpringBoot中事務鉤子函數(shù)的使用方式,包括常見場景、使用方式等,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • Java面試題沖刺第八天--Spring框架2

    Java面試題沖刺第八天--Spring框架2

    這篇文章主要為大家分享了最有價值的三道Spring框架面試題,涵蓋內容全面,包括數(shù)據(jù)結構和算法相關的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • springBoot整合shiro如何解決讀取不到@value值問題

    springBoot整合shiro如何解決讀取不到@value值問題

    這篇文章主要介紹了springBoot整合shiro如何解決讀取不到@value值問題,具有很好的參考價值,希望對大家有所幫助,
    2023-08-08
  • Java實現(xiàn)Huffman編碼的示例代碼

    Java實現(xiàn)Huffman編碼的示例代碼

    Huffman編碼是一種編碼方式,本文主要介紹了Java實現(xiàn)Huffman編碼的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08

最新評論

崇信县| 嫩江县| 博白县| 东至县| 海丰县| 宝兴县| 鄯善县| 外汇| 绵阳市| 仁化县| 浏阳市| 萝北县| 孝昌县| 四子王旗| 祁连县| 怀柔区| 黎城县| 安溪县| 汤原县| 绥阳县| 延安市| 涪陵区| 石渠县| 墨玉县| 延安市| 云安县| 基隆市| 武隆县| 长治市| 屏东县| 陆丰市| 三门峡市| 桐城市| 苍南县| 志丹县| 施秉县| 浦城县| 静乐县| 鹤山市| 新和县| 南城县|