js壓縮文件讀取處理


1.引入必須依賴庫jszip+jsutils=>>>建議使用以下版本,其他版本的jszip會報錯

<!--zip文件讀取-->
<script src="https://cdn.bootcss.com/jszip/2.1.0/jszip.min.js"></script>
<script src="https://cdn.bootcss.com/jszip-utils/0.0.2/jszip-utils.min.js"></script>
2.實例化jsZip對象並讀取文件:
<script>
JSZipUtils.getBinaryContent('http://static.yygo.tv/Gift/o_1c3239h691nd2uohmf414b8dlia.zip', function (err, data) {
if (err) {
throw err; // or handle err
}
var zip = new JSZip(data);

JSZipUtils.getBinaryContent('read.zip', function (err, data) {
if (err) {
throw err; // or handle err
}
var zip = new JSZip(data);
function Uint8ArrayToString(fileData){
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
}
return dataString

}
var dirname = 'read';
// 轉換格式字符串
var str = Uint8ArrayToString(zip.folder().files[dirname+'/package.json']._data.getContent());
//將字符串轉換對象
var res = JSON.parse(str);

console.log(res)

</script>
Tip=>jsZip讀取的data為對象,buffer參數為每個圖片的文件名,可通過zip.file('')||zip.folder()讀取文件名或文件夾
 
Uint8Array轉字符串

function Uint8ArrayToString(fileData){
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
}

return dataString

}

 

字符串轉Uint8Array

function stringToUint8Array(str){
var arr = [];
for (var i = 0, j = str.length; i < j; ++i) {
arr.push(str.charCodeAt(i));
}

var tmpUint8Array = new Uint8Array(arr);
return tmpUint8Array
}

string轉ArrayBuffer

function str2ab(str) {
var buf = new ArrayBuffer(str.length * 2); // 每個字符占用2個字節
var bufView = new Uint16Array(buf);
for (var i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}

ArrayBuffer轉String

function ab2str(buf) {
  return String.fromCharCode.apply(null, new Uint8Array(buf));
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM