欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue+vant 上传图片需要注意的地方

程序员文章站 2022-06-05 13:32:11
1:上传文件流,提交的...
<van-uploader v-model="filelist" multiple :after-read="afterread" :max-count="1" />

1:上传文件流,提交的模式 肯定得 form-data模式

vue+vant 上传图片需要注意的地方

2:上传的文件file 做出处理我这里做的只能选择一张

afterread(file){
        console.log(file); //控制台可以看见图片信息
     if(this.filelist.length > 1){
         this.filelist.splice(1);
         this.$msg({
           text:'只能选择这么多!',
           type:'info'
         })
         return false;
       }
       let files = this.files;
       files.push(file.file);
    },

3:vue 里面axios 拦截处理 因为上传模式必须是from-data 所以就要设置    config.headers['content-type'] = 'multipart/form-data';

//http request 拦截器
axios.interceptors.request.use((config) => {
  if (config.method === 'post') {
    if( config.data && !config.data.i ){
      config.headers['content-type'] = 'multipart/form-data';
    }else{
      config.data = qs.stringify(config.data);
    }
    //  if ( config.data ){
    //       if ( config.data.i === undefined ){
    //         config.headers['content-type'] = 'multipart/form-data';
    //       }else{
    //         config.data = qs.stringify(config.data);
      
    //       }
    //  }
  }
  return config;
}, (error) => {
  return promise.reject(error);
})

4:就是上次图片前端做的处理需要用到 new formdata() 做出处理,因为是文件流,直接打印是看不出来的详情去看官网new formdata()。

wineorder(){
      console.log(this.files)
      this.disabled = true;
      const data = new formdata();
      const user = json.parse(sessionstorage.getitem('user'));
      data.append('i',user.uniacid);
      data.append('token',user.token);
      data.append('bid',user.bid);
      data.append('roomid',this.roomid);
      data.append('booker',this.dingname);
      data.append('guestname',this.username);
      data.append('type',this.type);
      data.append('tel',this.phone);
      data.append('endtime',this.date);
      data.append('file',this.files[0]);
      data.append('goodsinfo',json.stringify(this.savewinelist));
      wineorder(data).then((e)=>{
        if( e.code == 0 ){
          this.disabled = false;
          e.totalmoney = '';
          var c ={
            topic:"",
            data:e,
            type:'savewine'
          }
          return;
          settimeout(() => {
            window.location.href="setterorder?c=" rel="external nofollow" +json.stringify(c);
          }, 1500);
        }else{
           this.disabled = false;
           this.$msg({
            text:e.msg,
            type:'info'
          })
        }
      })
    },

效果图

vue+vant 上传图片需要注意的地方

剩下的就交给后端处理就行了,到这里就完全可以了

以上就是vue+vant 上传图片需要注意的地方的详细内容,更多关于vue+vant 上传图片的资料请关注其它相关文章!