vue elementui 文件上传,vue element 文件上传

  vue elementui 文件上传,vue element 文件上传

  这篇文章主要介绍了某视频剪辑软件元素_ui上传文件,并传递额外参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  需求:

  1、文件大小验证

  2、文件类型验证

  3、额外参数传输

  模板

  el-upload class=上传-演示操作:limit= 1 :file-list= form file list :http-request= handleUploadForm :on-exceed= formHandleExceed :on-remove= formHandleRemove

  :before-upload= before upload form accept= .csv、应用程序/vnd。开放XML格式-office文档。电子表格ml。表格,应用程序/vnd.ms-excel

  埃尔按钮类型="主要"上传文件/el-button

  span slot= tip class= El-upload _ _ tip style= margin:0 10px;只能上传xlsx/xls/csv文件,且不超过{{formMaxSize}}M/span

  /El-上传

  /模板

  脚本

  导出默认值{

  data () {

  返回{

  formMaxSize: 10,//上传文件大小

  表单文件列表:[],//显示上传文件

  uploadFormFileList: [] //确定上传文件

  }

  },

  方法:{

  //开始上传前验证

  beforeUploadForm(文件){

  //验证文件大小

  如果(文件。尺码/1024/1024这个。表单maxsize){

  这个消息({

  消息: `消息上传文件大小不能超过${this.formMaxSize}M!`,

  类型:"警告"

  })

  返回错误的

  }

  //中文乱码处理

  if (file.raw) {

  let reader=new FileReader() //读取文件内容

  读者。读取文本(文件。原始, gb2312) //防止中文乱码问题,不加reader.onload方法都不会触发

  reader.onload=函数(e) {

  这个。内容html=e .目标。结果//文本文本内容,接下来就可以对其进行校验处理了

  }

  }

  //验证文件类型

  var testmsg=file。姓名。子串(文件。姓名。lastindexof( . ) 1)

  const extension=testmsg=== xlsx testmsg=== xls testmsg=== CSV

  如果(!扩展){

  这个消息({

  消息: 上传文件只能是xlsx/xls/csv格式!,

  类型:"警告"

  })

  }

  返回扩展

  },

  //移除上传列表中文件

  formHandleRemove (file,formFileList) {

  让thiz=这个

  对于(设I=0;我觉得。uploadformfilelist。长度;i ) {

  if (thiz.uploadFormFileList[i].pname===file.name) {

  thiz。uploadformfilelist。拼接(I,1)

  破裂

  }

  }

  },

  //允许上传文件个数验证

  formHandleExceed (files,formFileList) {

  这个$消息。警告(` n当前限制选择一个文件,本次选择了${files.length}个文件,共选择了${files.length格式文件列表。长度}个文件`)

  },

  //上传文件

  handleUploadForm (param) {

  让thiz=这个

  假设表单数据=新表单数据()

  formData.append(uid ,上传文件编号) //额外参数

  formData.append(files ,param.file)

  让负载=thiz .$正在加载({

  锁:真的,

  文本: 上传中,请稍候.

  微调器:“el图标加载",

  背景: rgba(0,0,0,0.7)

  })

  thiz .$ axios。post( http://localhost:8080/upload/file ,formData).然后(({data})={

  if (data.statusCode===233) {

  thiz .$message(上传文件成功,数据。消息)

  thiz.formFileList=[]

  thiz.uploadFormFileList=[]

  }否则{

  thiz.formFileList=[]

  thiz.uploadFormFileList=[]

  thiz .$message(上传文件失败,数据。消息)

  }

  loading.close()

  })

  }

  }

  }

  /脚本

  样式lang=scss 范围

  /风格

  总结:

  关于埃尔-上传中各属性的配置,可以看element_ui官网

  后端接受上传文件和额外参数:

  @ request param(value= uid )String uid,@ request param(value= files )multipart file[]files

  补充知识:vue利用elementUI上传文件以及其他参数的处理方式

  将文件自动上传改为错误的

  :自动上传=假

  点击保存的时候,调用埃尔-上传的上传方法

  代码如下(封装的上传方法)

  导出函数mpp(数据){

  返回新承诺(功能(解决,拒绝){

  let data={

  方法: POST ,

  网址:网址,

  数据:数据

  }

  解析(axios(数据));

  })

  }

  模板

  !-导入计划-

  div class="关联计划"

  El-form:model= data model :rules= rules ref= association plan label-width= 100px

  El-表单-项目标签=项目名称: prop=projectArry

  El-cascader:options= listOrgInfoList v-model=数据模型。 project arry :props= default prop size= small placeholder=请选择项目style= width:100%;clearable:disabled= is company /El-cascader

  /El-表单-项目

  El-表单-项目标签=计划级别: prop=level

  El-select size= small v-model=数据模型。级别“placeholder=”请选择: clearable style= width:100%;

  el-option v-for=(item,index)in planTypeList :label= item。 name :value= item。 number :key= index /El-option

  /el-select

  数据模型。级别==1 一级进度计划匹配项目总工期,项目下只可建立一个,请确认后再添加!/span

  /El-表单-项目

  El-表单-项目标签=计划名称: prop=name

  埃尔-输入v型车。number=数据模型。name size= small /El-input

  /El-表单-项目

  El-表单-项目标签=导入计划:

  埃尔-上传接受=。MPP style= display:inline-block;垂直对齐:顶部;ref= upload add action= :auto-upload= false :http-request= upload img :on-success= upload img success :on-remove= handle remove

  El-button size= small type= success 请选择文件/el-button

  /El-上传

  /El-表单-项目

  /el格式

  div class=clickBtn

  El-button @ click= close size= small 取消/el-button

  El-button @ click= commit size= small type= primary 保存/el-button

  /div

  /div

  /模板

  脚本

  从" vuex "导入{ mapState,地图操作}。

  从导入{计划,mpp}./API/系统接口。js’;

  导出默认值{

  名称:关联计划,

  data() {

  返回{

  数据模型:{

  项目Id:" ",

  projectArry:[],

  级别:空,

  名称:,

  parentId:"0 "

  },

  defaultProp: {

  孩子:"孩子",

  标签:"名称",

  值:" id "

  },

  //数据校验

  规则:{

  projectArry: [{必填:真的,消息: 请选择项目,触发器:模糊 }],

  名称:[{要求:真,消息: 请输入计划名称,触发器:模糊 }],

  级别:[{要求:真,消息: 请选择计划级别,触发器:更改 }]

  },

  文件:假,

  isCompany:false

  };

  },

  计算值:{

  .mapState([

  listOrgInfoList ,

  植物分类员

  ]),

  },

  方法:{

  .地图操作([

   getlistOrgInfoList

  ]),

  update(){

  让公司类型=会话存储。getitem(公司类型);

  this.isCompany=companyTypes==4?真:假;

  这个。数据模型。arry=JSON项目。解析(会话存储。getitem( select arry );

  },

  上传(f) {

  //如果(!f){

  //这个message.error(请上传文件!);

  //返回

  //}

  这个。数据模型。projectid=this。数据模型。项目arry[这个。数据模型。阿里计划。长度-1];

  let param=new FormData();//创建形式对象

  param.append(file ,f . file);//通过附加向形式对象添加数据

  param.append(level ,this。数据模型。水平);//添加形式表单中其他数据

  param.append(projectId ,this。数据模型。projectId);//添加形式表单中其他数据

  param.append(planName ,this。数据模型。姓名);//添加形式表单中其他数据

  mpp(param)//上传。然后(响应={

  if(response.code==200){

  这个message.success(上传成功!);

  这个。close();

  这个. emit(刷新数据);

  论成功(回应。数据);

  }

  })。catch(({err})={

  f.onError()

  })

  },

  上传成功(响应、文件、文件列表){

  //缓存接口调用所需的文件路径

  console.log(文件上传成功)

  //这个message.success(上传成功!);

  },

  手柄移除(文件,文件列表){

  //更新缓存文件

  console.log(文件删除)

  },

  //重置方法

  重置(){

  const associationPlan=this .$ refs[关联计划];

  关联计划。重置字段();

  这个。数据模型。projectid=null

  这个。数据模型。name=

  这个。数据模型。级别=" ";

  这个。数据模型。project arry=[];

  },

  //关闭弹框

  close() {

  这个. emit( close );

  这个。reset();

  },

  //点击提交

  提交(){

  这个refs[associationPlan].验证(有效={

  如果(!有效){

  返回;

  }

  这个参考文献。上传添加。submit();

  //这个。数据模型。projectid=this。数据模型。项目arry[这个。数据模型。阿里计划。长度-1];

  //plan(this.dataModel)

  //.然后(响应={

  //if (response.code==200) {

  //这个message.success(添加成功!);

  //这个。close();

  //这个. emit(刷新数据);

  //}其他{

  //这个$消息。错误(响应。味精);

  //}

  //})

  //.接住(错误={

  //});

  });

  },

  }

  };

  /脚本

  样式lang=scss 范围。单击Btn {

  文本对齐:居中;

  }。警告信息{

  //color:# feba 51;

  颜色:rgb(64,158,255);

  }

  /风格

  以上这篇某视频剪辑软件元素_ui上传文件,并传递额外参数操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: