elementplus大文件上传
时间: 2023-08-27 10:06:59 浏览: 126
Element Plus 提供了`el-upload`组件来实现文件上传功能,可以通过`action`属性指定上传接口地址,同时设置`limit`属性可以限制文件大小,如下所示:
```html
<template>
<el-upload
class="upload-demo"
action="/upload"
:limit="limit"
:on-exceed="handleExceed"
:before-upload="beforeUpload"
:on-success="handleSuccess"
:on-error="handleError"
:file-list="fileList"
multiple>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传不超过 {{ size }}MB 的文件</div>
</el-upload>
</template>
<script>
export default {
data() {
return {
fileList: [],
size: 10, // 限制文件大小,单位 MB
};
},
computed: {
limit() {
return this.size * 1024 * 1024;
},
},
methods: {
handleExceed() {
this.$message.warning(`文件大小不能超过 ${this.size}MB`);
},
beforeUpload(file) {
if (file.size > this.limit) {
this.$message.warning(`文件大小不能超过 ${this.size}MB`);
return false;
}
return true;
},
handleSuccess(response, file) {
this.fileList.push(file);
this.$message.success('上传成功');
},
handleError(error, file) {
this.$message.error('上传失败');
},
},
};
</script>
```
另外,如果要上传大文件,建议使用分片上传的方式,可以提高上传的效率和稳定性。在 `beforeUpload` 方法中,可以将文件分片后,通过 `axios` 等库将分片文件上传到服务器上。服务器端需要将所有分片文件合并成完整文件。
阅读全文