1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 一篇文章介绍JSZip预览压缩包中的文件

一篇文章介绍JSZip预览压缩包中的文件

时间:2022-06-20 13:48:17

相关推荐

一篇文章介绍JSZip预览压缩包中的文件

安装依赖

npm i jszip

前提准备

准备好一个压缩包,格式为zip,存放两张png图片。

代码实现

<template><h1>JSZip,预览压缩包中的文件</h1><img v-for="(n,m) in picArr.arr":src="n":style="{width:'200px'}":key="m"><div>需要压缩的包(zip)</div><input type="file"@change="fn"></template>​<script setup>import { reactive } from '@vue/reactivity'import JSZip from 'jszip'​let picArr = reactive({ arr: [] })const fn = (e) => {// console.log(e.target.files[0]);let zip = new JSZip()// loadAsync() 读取现有的zip,并在当前文件夹级别合并当前JSZip对象中的数据// 如果两个具有相同的名称,则加载的一个将替换另一个zip.loadAsync(e.target.files[0]).then(zipdata => {// console.log(zipdata.files);for (let n in zipdata.files) {// console.log(zipdata.files[n]);​// .file(name) 读取文件在当前目录zipdata// 获得指定文件里面的文件名字.file(zip.files[n].name)// 指定返回结果类型.async('base64').then(res => {// 打印base64// console.log(res);let imgBase64 = 'data:image/jpeg;base64,' + respicArr.arr.push(imgBase64)})}})}</script>​<style scoped>div {margin: 0 auto;}</style>

结果显示

代开浏览器页面点击按钮上传压缩包。

结果会在浏览器页面中显示压缩包里的图片内容。

举一反三,如果压缩包里面的内容是文本信息呢,应该怎么显示?

关键部分:async('text') 实现对文本内容的解析。

准备一个文本压缩包如下。

代码修改如下

<template><h1>JSZip,预览压缩包中的文件</h1><img v-for="(n,m) in picArr.arr":src="n":style="{width:'200px'}":key="m"><div>需要压缩的包(zip)</div><input type="file"@change="fn"><h2>{{ zipContent }}</h2></template>​<script setup>import { reactive, ref } from '@vue/reactivity'import JSZip from 'jszip'​let picArr = reactive({ arr: [] })let zipContent = ref('')​const fn = (e) => {// console.log(e.target.files[0]);let zip = new JSZip()// loadAsync() 读取现有的zip,并在当前文件夹级别合并当前JSZip对象中的数据// 如果两个具有相同的名称,则加载的一个将替换另一个zip.loadAsync(e.target.files[0]).then(zipdata => {// console.log(zipdata.files);for (let n in zipdata.files) {// console.log(zipdata.files[n]);​// .file(name) 读取文件在当前目录zipdata// 获得指定文件里面的文件名字.file(zip.files[n].name)// 指定返回结果类型.async('text').then(res => {// 打印文本信息console.log(res);zipContent.value = res})}})}</script>​<style scoped>div {margin: 0 auto;}</style>

结果显示

总结

通过上面的案例代码,可以举一反三进行预览显示视频和音频等其他类型文件,可以仔细了解JSZip官网中的api。

相关jszip的api 方法 可以查询https://stuk.github.io/jszip。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。