项目中遇到一个需求,在线查看合约内容并下载。
有两种处理方案:
一是接口返回合约文件目录并点击目录获取合约内容,下载还要一个接口
另一个方案就是接口只提供合约zip包,剩下的前端来实现。
最后定了第一种方案,所以demo了一下前端实现
首先安装jszip
npm install jszip -s
//引入
import JSZip from 'jszip'
//获取文件内容并处理
const unzipFiles = () => {
fetch('http://127.0.0.1:5500/build.zip')
.then((response) => response.blob())
.then((blob) => JSZip.loadAsync(blob))
.then((zip) => {//zip的files是所有文件的对象,key是文件的路径
//console.log('zip', zip.files, zip.files['build/index.html']);
// const htmlText = zip.files['build/static/css/index.css'];
htmlText.async('string').then((text) => setCode(text)); // 获取文件内容
});
};