当前位置: 首页 > Web前端 > JavaScript

Vue+元素组件上传(随表单一起提交)和下载

时间:2023-03-27 10:02:58 JavaScript

1、下面介绍上传组件中一些常用的属性和方法。属性限制:限制文件上传的数量。单个文件可设置1个,数量可根据需要设置。accept:限制上传文件的类型(常见类型:jpg/png/xls/xlxs/doc等)multiple:上传多个文件时可设置为true一起提交时可设置)action:上传的文件。当我们设置auto-upload为true时,组件会根据action的地址自动提交。如果不需要单独上传,这个属性可以设置为none。2、预览方式:图片可以放大[window.open()],文件可以下载附件。具体方法是window.location.href()。on-remove:从文件列表中移除文件triggerbefore-upload:上传文件前触发的函数,如果关闭auto-upload则不会自动上传,也不会触发这个钩子函数on-exceed:一个钩子超过文件数量限制的功能,当用户选择超过文件数量时,可以很好的提示。on-change:文件状态改变时的钩子,添加文件、上传成功、上传失败时都会调用。3、具体代码模板部分点击上传methodssection//文件限制超出handleExceed(files,fileList){this.$message.warning(`目前限制上传1个文件,共选择了${fileList.length}个文件`);},//从文件列表中删除文件的钩子handleRemove(file,fileList){this.fileList=fileList},//上传文件handleChange(file,fileList){this.fileList=fileList},//下载附件downloadFile(file){window.location.href=file.raw//原始二进制文件},2.上传文件和表格共同提交提交提交表单方使用multipart/form-data;格式传参letfile=""file=this.fileList.length?this.fileList[0].raw:''letformData=newFormData()formData.append('id',this.infoForm.id)formData.append('fblx',this.infoForm.fblx)formData.append('fbnr',this.infoForm.fbnr)formData.append('fb_rqsj',this.infoForm.fb_rqsj)formData.append('ggdj',this.infoForm.ggdj)formData.append('fbqxxqdm',this.infoForm.fbqxxqdm)formData.append('fbqxxqjb',this.infoForm.fbqxxqjb)formData.append('ggbt',this.infoForm.ggbt)formData.append('fbqxlb',this.infoForm.fbqxlb)formData.append('文件',file)formPost('/zhyq/notice/v1/update',formData,{headers:{'Content-Type':'multipart/form-data;charset=utf-8'},}).then(res=>{this.$message({message:"编辑成功!",type:"success"});this.infoShow=false;this.init();}).catch(err=>{});