使用el-upload实现上传文件、上传者、上传文件的文件名的功能
时间: 2024-03-11 18:50:52 浏览: 131
vue+axios+el-upload实现文件上传(带参数):
3星 · 编辑精心推荐
好的,我可以帮您回答这个问题。使用Element UI的`el-upload`组件可以非常方便地实现文件上传功能,并且可以自定义上传参数。以下是一个示例:
```
<template>
<el-upload
class="upload-demo"
:action="uploadUrl"
:on-success="handleSuccess"
:data="uploadData"
:file-list="fileList"
:list-type="'text'"
:multiple="false"
:show-file-list="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="上传者">
<el-input v-model="form.uploader"></el-input>
</el-form-item>
<el-form-item label="文件名">
<el-input v-model="form.filename"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitUpload">立即上传</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
uploadUrl: '/api/upload', // 上传接口地址
uploadData: {}, // 上传参数
fileList: [], // 已上传文件列表
form: { // 上传者和文件名
uploader: '',
filename: ''
}
}
},
methods: {
handleSuccess(response, file) {
// 上传成功的回调函数
console.log(response, file);
this.fileList.push({
name: response.filename,
url: response.fileUrl
});
},
submitUpload() {
// 提交上传者和文件名参数
this.uploadData = {
uploader: this.form.uploader,
filename: this.form.filename
};
// 提交上传
this.$refs.upload.submit();
}
}
}
</script>
```
在这个示例中,我们使用了`el-upload`组件实现文件上传,并且使用了`el-form`组件实现上传者和文件名的输入。在上传时,我们通过设置`data`属性将上传者和文件名作为参数一起提交到服务器。在上传成功后,服务器返回文件的信息,我们将文件名和文件URL添加到已上传文件的列表中。
希望这个例子对您有所帮助。如果您有其他问题,请随时提出。
阅读全文