<template>
<div>
<input type="file" id="myFile" @change="fileChange" name="myfile" />
<button @click="handleDownload">JSZip压缩.zip文件</button>
</div>
</template>
<script>
import axios from 'axios'
import JSZip from 'jszip'
// var fs = require('fs');
// eslint-disable-next-line no-unused-vars
// import FileSaver from 'file-saver'
var zip = new JSZip()
export default {
name: 'Download',
data () {
return {
}
},
mounted(){
},
methods: {
fileChange(){
var fileInput = document.getElementById("myFile");
var file = fileInput.files[0];
// 给压缩文件里添加文件
zip.file('00E4DAC2282E50A0_中铁二局六公司乐西合肥成都地铁13号线赣新德阳保罗昭西南昌合海南振源建材有限公司202302941.xlsx',file);
},
handleDownload(){
// 压缩
zip.generateAsync({
// 压缩类型选择nodebuffer,在回调函数中会返回zip压缩包的Buffer的值,再利用fs保存至本地
type: "nodebuffer",
// 压缩算法
compression: "DEFLATE",
compressionOptions: {
level: 9
}
}).then(function (content) {
console.log(content)
// ArrayBuffer转File
var blob = new File([content], '00000.zip');
// 空的formData实例对象
var formData1 = new FormData();
// 给formData添加数据
formData1.set("file",blob);
formData1.set("tableName",'gzw_price_supplier_info');
formData1.set("businessKey",'4691fc3a-905f-4e02-a01a-73a2e3ad795c');
// 接口请求
axios({
method: 'post',
url:'http://10.2.245.16:8080/file/uploadfiles',
headers: {
"Content-Type": "multipart/form-data",
},
data: formData1
}).then(data => {
console.log('data', data)
})
.catch(error => {
console.log('data', error)
})
});
}
}
}
</script>
前端文件压缩为zip文件上传后台
于 2023-02-16 10:03:55 首次发布