安装
template
<el-upload drag
:action="uploadUrl"
:http-request="uploadRequest"
accept=".zip"
name="add"
:show-file-list="false"
:before-upload="handleBefore"
>
// 重点:before-upload="handleBefore"
// 事件不是必须放在before-upload中
引入、使用
- import JSZip from 'jszip'
<script>
handleBefore(file) {
let new_zip = new JSZip();
const that = this;
//使用iconv-lite这个插件解决文件名中有中文乱码的问题
let iconv = require('iconv-lite');
new_zip.loadAsync(file, {
decodeFileName: function (bytes) {
return iconv.decode(bytes, 'gbk'); //解码
}
}).then(function(res) {
let files = res.files;
let filesName = Object.keys(files) // 获取所有文件名
console.log(filesName )
});
},
</script>
文件名中有中文乱码的问题官方文档中说要同时使用 iconv-lite 这个插件