使用elementui实现表单上传功能_elementUI实现自定义上传文件并携带参数

vue代码

ref="upload"

action="/api/iot/deviceInfo/uploadFiles"

:before-upload="beforeUploadHandle"

:on-success="handleSuccess"

:auto-upload="false"

multiple

:limit="2"

:on-exceed="handleExceed"

:file-list="fileList">

添加文档或视频

js代码

// 上传之前

beforeUploadHandle(file) {

// 校验格式

if (

file.type !== "video/mp4" &&

file.type !== "application/msword" &&

file.type !==

"application/vnd.openxmlformats-officedocument.wordprocessingml.document"

) {

this.$message.error("只支持.mp4、.doc、.docx文件!");

return false;

}

},

// 超出上传数量的时候调用

handleExceed(files, fileList) {

this.$message.warning(

`当前限制选择 2 个文件,本次选择了 ${files.length} 个文件,共选择了 ${

files.length + fileList.length

} 个文件`

);

},

// 手动上传

submitUpload() {

this.$refs.ruleForm.validate((valid) => {

if (valid) {

if (this.$refs.upload.uploadFiles.length <= 0) {

this.$message.warning("请选择上传的文档或视频");

return;

}

this.saveLoading = true;

// 新建formData对象

let formData = new FormData();

// 将上传的文件放进formData对象

this.$refs.upload.uploadFiles.forEach((file) => {

formData.append("file", file.raw);

});

// 携带其他参数

formData.append("articleTitle", this.form.articleTitle);

formData.append("category", this.form.category);

formData.append("author", this.form.author);

formData.append("keyword", this.form.keyword);

formData.append("unit", this.form.unit);

// 调用上传接口

uploadFile(formData)

.then((res) => {

if (res && res.code === 200) {

this.$message.success("保存成功");

} else {

this.$message.error(res.msg);

}

this.saveLoading = false;

this.queryRule();

})

.catch((err) => {

console.log(err);

});

this.dialogFormVisible = false;

this.isAdd = false;

}

});

},

使用this.$refs.upload.uploadFiles获取文件列表是因为通过绑定file-list经常获取不到对象列表,具体原因还不清楚

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值