A. js把頁面圖片打包成zip格式
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title></title>
<style>
img{
width:200px;
height:150px;
}
</style>
</head>
<body>
<imgsrc="http://pic.pptbz.com/201506/2015070581208537.JPG"/>
<imgsrc="http://img.taopic.com/uploads/allimg/121014/234931-1210140JK414.jpg"/>
<imgsrc="http://img.zcool.cn/community/.jpg"/>
<imgsrc="http://img.zcool.cn/community/.jpg"/>
<br/><br/>
<buttononclick="packageImages()">packageImages</button><spanid="status"></span><br/><br/>
<scripttype="text/javascript"src="js/jquery.min.js"></script>
<scripttype="text/javascript"src="js/jszip.min.js"></script>
<scripttype="text/javascript"src="js/FileSaver.js"></script>
<scripttype="text/javascript">
functionpackageImages(){
$('#status').text('處理中。。。。。');
varimgs=$('img');
varimgsSrc=[];
varimgBase64=[];
varimageSuffix=[];//圖片後綴
varzip=newJSZip();
zip.file("readme.txt","案件詳情資料 ");
varimg=zip.folder("images");
for(vari=0;i<imgs.length;i++){
varsrc=imgs[i].getAttribute("src");
varsuffix=src.substring(src.lastIndexOf("."));
imageSuffix.push(suffix);
getBase64(imgs[i].getAttribute("src"))
.then(function(base64){
imgBase64.push(base64.substring(22));
//console.log(base64);//處理成功列印在控制台
},function(err){
console.log(err);//列印異常信息
});
}
functiontt(){
setTimeout(function(){
if(imgs.length==imgBase64.length){
for(vari=0;i<imgs.length;i++){
img.file(i+imageSuffix[i],imgBase64[i],{base64:true});
}
zip.generateAsync({type:"blob"}).then(function(content){
//seeFileSaver.js
saveAs(content,"images.zip");
});
$('#status').text('處理完成。。。。。');
}else{
//console.log('imgs.length:'+imgs.length+',imgBase64.length:'+imgBase64.length);
$('#status').text('已完成:'+imgBase64.length+'/'+imgs.length);
tt();
}
},100);
}
tt();
}
//傳入圖片路徑,返回base64
functiongetBase64(img){
functiongetBase64Image(img,width,height){//width、height調用時傳入具體像素值,控制大小,不傳則默認圖像大小
varcanvas=document.createElement("canvas");
canvas.width=width?width:img.width;
canvas.height=height?height:img.height;
varctx=canvas.getContext("2d");
ctx.drawImage(img,0,0,canvas.width,canvas.height);
vardataURL=canvas.toDataURL();
returndataURL;
}
varimage=newImage();
image.crossOrigin='Anonymous';
image.src=img;
vardeferred=$.Deferred();
if(img){
image.onload=function(){
deferred.resolve(getBase64Image(image));//將base64傳給done上傳處理
}
returndeferred.promise();//問題要讓onload完成後再returnsessionStorage['imgTest']
}
}
</script>
</body>
</html>
B. 前端怎麼解析rar壓縮包
前端通過插件解析rar壓縮包。
1、下載安裝jszip插件並導入插件。
2、獲取內部每個文件的file就可以解析rar壓縮包。
C. jszip下載最多支持多少g
jszip下載最多支持8,589,934,591GB。根據查詢相關信息,jszip是一個壓縮文件,所以可以支持很多G。jszip處理單個文件的最大值為4GB。
D. 怎麽解壓jszip.zip文件
下載一個winRar解壓縮工具即可(推薦)
或者其他解壓縮軟體(如好壓)
如果手機端 也可以下載zip解壓器
E. JSZip 簡單使用
JSZip 是一個用於創建、讀取和編輯.zip文件的JavaScript庫,且API的使用也很簡單。如下是使用 JSZip 壓縮一個文件夾到指定目錄的例子。
zip.js 文件中內容如下:
命令:
F. jszip.js遠程讀取一個zip文件
項目用到了jszip.js插件,用於在後台獲取zip文件,前端解壓並將模型進行在線顯示.
官網
jszip的API說明為英文,例子其實也有些模糊.
遠程載入一個文件, 使用官網的例子 :(自行觀看);
這里作為筆記,主要是想說
promise.then(JSZip.loadAsync)
.then(function( zip ){returnzip.file("Hello.txt").async("string");
此處可以返回一個值,返回的值就是下一個.then的實參
})
這里的zip就是讀取到的zip的數據,主要的屬性諸如files就是zip中的文件,可以通過zip.file(filename)的形式將該文件對象進行存儲,但是這里的文件對象其實是一個promise,當我們需要使用的時候可以通過.then 的形式使用
例如: pic.then(function(data){
//data就是該文件的數據,得到data後可以通過使用,這里就需要注意我們在存儲的時候可以通過使用zip.file(filename).async(數據形式)來定義數據的存儲形式,例如base64,blob,arraybuffer,其中base64是圖片的存儲格式,但是是沒有前綴的,必須加相應的前綴才可以顯示.data:image/png;base64;就可以直接賦值給image.src;
})