jszip插件實現(xiàn)圖片打包下載的方法分析 原創(chuàng)
原創(chuàng) 更新時間:2023年05月19日 09:15:46 原創(chuàng) 投稿:shichen2014
這篇文章主要介紹了jszip插件實現(xiàn)圖片打包下載的方法,結合實例形式分析了JavaScript使用jszip插件依據(jù)圖片列表打包下載zip壓縮文件的相關操作技巧,需要的朋友可以參考下
前言
由于后端使用php、node.js、java等進行大量的圖片下載操作可能會導致服務器負載過高,所以將圖片下載轉移到客戶端是個不錯的選擇,借助 HTML5 中的新特性 Blob 和 URL.createObjectURL API 實現(xiàn)。
實現(xiàn)代碼
function download(){ var urls = [ "https://example.com/img1.jpg", "https://example.com/img2.png" ]; var zip = new JSZip(); var count = 0; urls.forEach((url, index) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "blob"; xhr.onload = function () { if (xhr.status === 200) { var name = url.substring(url.lastIndexOf("/") + 1); zip.file(name, xhr.response); } count++; if (count === urls.length) { zip.generateAsync({type:"blob"}).then(function(content) { saveAs(content, "pictures.zip"); console.log("下載成功"); }); } }; xhr.send(); }); }
另外,注意:在頁面頂部還需要引入jszip插件
<head> <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.6.0/jszip.min.js"></script> </head>
這樣可以將圖片下載過程從服務器轉移到客戶端,從而減輕服務器壓力。同時需要注意的是,在使用客戶端進行大量圖片下載時,也要防止網(wǎng)絡請求并發(fā)數(shù)量過多導致瀏覽器崩潰。
相關文章
DeviceOne 讓你一見鐘情的App快速開發(fā)平臺
DeviceOne是一個非常先進的App開發(fā)平臺,使用Javascript 構建原生體驗的移動應用程序,DeviceOne主要關注外觀和體驗,以及和你的應用程序的 UI 交互2016-02-02js實現(xiàn)base64、url和blob之間相互轉換的3種方式舉例
在JavaScript中將圖片的絕對路徑轉換為base64字符串或blob對象,是常見的圖片上傳前的預處理步驟,這篇文章主要介紹了js實現(xiàn)base64、url和blob之間相互轉換的3種方式,需要的朋友可以參考下2025-04-04JS中showModalDialog關閉子窗口刷新主窗口用法詳解
這篇文章主要介紹了JS中showModalDialog關閉子窗口刷新主窗口用法,結合具體實例形式較為詳細的分析了showModalDialog常見用法與相關使用技巧,需要的朋友可以參考下2017-03-03