批量上传的Demo

备注一下,以防忘记!
el-upload是一个Vue组件,用于实现文件上传功能。它支持大文件分片上传和断点续传。下面是el-upload批量上传分片的示例代码: ```html <template> <el-upload class="upload-demo" action="/upload" :on-change="handleChange" :before-upload="handleBeforeUpload" :on-success="handleSuccess" :on-error="handleError" :file-list="fileList" :auto-upload="false" :multiple="true" :limit="3" :chunk-size="5 * 1024 * 1024" // 每个分片的大小,这里设置为5MB :with-credentials="true" > <el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="upload">上传到服务器</el-button> <div slot="tip" class="el-upload__tip">只能上传不超过 3 个文件</div> </el-upload> </template> <script> export default { data() { return { fileList: [] }; }, methods: { handleChange(file, fileList) { this.fileList = fileList; }, handleBeforeUpload(file) { // 在上传之前计算文件的MD5值,并将其存储在文件对象的meta属性中 return new Promise((resolve, reject) => { const fileReader = new FileReader(); fileReader.onload = e => { const arrayBuffer = e.target.result; const md5 = this.calculateMD5(arrayBuffer); file.meta = { md5 }; resolve(file); }; fileReader.onerror = error => reject(error); fileReader.readAsArrayBuffer(file); }); }, handleSuccess(response, file, fileList) { // 上传成功的处理逻辑 }, handleError(error, file, fileList) { // 上传失败的处理逻辑 }, upload() { // 手动触发上传 this.$refs.upload.submit(); }, calculateMD5(arrayBuffer) { // 计算文件的MD5值 // 这里使用第三方库spark-md5来计算MD5值 const spark = new SparkMD5.ArrayBuffer(); spark.append(arrayBuffer); return spark.end(); } } }; </script> ``` 在上面的示例代码中,我们使用了el-upload组件来实现文件上传功能。通过设置`multiple`属性为`true`,可以支持批量上传。`chunk-size`属性用于设置每个分片的大小,这里设置为5MB。在`handleBeforeUpload`方法中,我们使用`FileReader`来读取文件内容,并计算文件的MD5值,然后将MD5值存储在文件对象的`meta`属性中。在上传成功后的`handleSuccess`方法中,可以进行上传成功的处理逻辑。在上传失败后的`handleError`方法中,可以进行上传失败的处理逻辑。最后,通过点击"上传到服务器"按钮来手动触发上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值