jszip如何解压字符串

JavaScript015

jszip如何解压字符串,第1张

其实php对gzip解压很简单,用内置的gzdecode函数就可以了,不过很可惜我配置了半天也无法支持gzdecode函数,所以只好变通一下: 复制代码 代码如下: if (!function_exists('gzdecode')) { function gzdecode ($data) { $flags = ord(substr($data, 3, 1)) $headerlen = 10 $extralen = 0 $filenamelen = 0 if ($flags &4) { $extralen = unpack('v' ,substr($data, 10, 2)) $extralen = $extralen[1] $headerlen += 2 + $extralen } if ($flags &8) // Filename $headerlen = strpos($data, chr(0), $headerlen) + 1 if ($flags &16) // Comment $headerlen = strpos($data, chr(0), $headerlen) + 1 if ($flags &2) // CRC at end of file $headerlen += 2 $unpacked = @gzinflate(substr($data, $headerlen)) if ($unpacked === FALSE) $unpacked = $data return $unpacked } } 调用方法很简单: 复制代码 代码如下: $f=@file_get_contents("") echo gzdecode($f)

项目用到了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/pngbase64就可以直接赋值给image.src })