element 框架很实用,最近不想去修改input上传的样式,干脆直接使用el-upload,使用的是手动上传,但是感觉文档中部分参数描述信息不是很详细,现在以我的调试的内容对部分参数使用做下详解。

一、action 上传地址   类型:string 

需要写动态地址时,修改成:action="url"    

data() {
      return {
          url:'http://123.com
      }
    },

类推,其他需要写动态参数时:即可

二、headers 类型:object(对象,需注意)  设置上传的请求头部 一般会放token值,基本也不可能为静态,认证信息这样写。

<el-upload class="upload-demo" ref="upload" :headers=“headers”>

</el-upload>

data() {
      return {
          headers:{Authorization:token}
      }
    },

三、data  类型:object(对象,需注意) 上传时携带的其他参数,上传时我没有使用到,暂时不做补充

四、name 类型:string  默认为file ,当然我们也可以修改成自己需要的

<el-upload class="upload-demo" ref="upload" name="fileame">

</el-upload>

PS:这里有个问题,我把方式改为自定义上传后即http-request后,name修改就没效果了,在http-request里修改fileName也不行,希望小伙伴们发现在哪修改可以告诉我

五、accept  类型:string 接收文件类型,多个以逗号隔开,注意是.txt,而不是txt

<el-upload class="upload-demo" ref="upload" accept=".txt,.csv">

</el-upload>

六、http-request 自定义上传事件,覆盖原来事件

可以这样使用

<el-upload class="upload-demo" ref="upload" :http-request="uploadFun" action="http://123.com"  name='‘fileName’>

</el-upload>

 uploadFun(param){
         var that = this;
         var data = new FormData(); //创建form对象
         data.append('file',param.file);
         //data.append('fileName',param.name);//我想要修改name属性,发现改成自定义上传后,html上的name不起作用了,想要在这         设置不起作用(name,fileName都试过,不起作用),导致接口调不通,最终放弃
         var config = {
           headers:{'Content-Type':'multipart/form-data'}
         };  //添加请求头
         this.axios.post(param.action,data,config)//
         .then(response=>{
           if(response.code==1){
           that.$message({ message: '上传成功!', type: 'success' });
           }
         })
         .catch(({err}) => {
           
         })  

   }

七、on-success 上传成功函数

最初调用不走,不得不用自定义上传,结果遇到问题,后又试一遍是可以的,可能一开始的写法有问题,

现在这样

<el-upload class="upload-demo" ref="upload" :http-request="uploadFun" action="http://123.com"  name='‘fileName’ :on-success="successFun">

 successFun(response,file,fileList){
        //这里三个入参,response为上传成功的回调值

       if(response.code==1){

          this.$message({ message: '上传成功!', type: 'success' });

       }

   }

 

GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45 7 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐