dcloudio / uni-app

A cross-platform framework using Vue.js
https://uniapp.dcloud.io
Apache License 2.0
40.1k stars 3.63k forks source link

uni.uploadFile方法formData参数丢失的情况 #3717

Open isLiuyinghao opened 2 years ago

isLiuyinghao commented 2 years ago

问题描述 我使用的版本是:vue3 + uniapp 当我使用 uploadFile 这个方法的时候 formData没有成功传递完成参数

复现步骤

uni.uploadFile({
      url:  'http://hy2022.hy-gateway.sitgw.yonghui.cn/hy-file/image/upload', //上传接口
      // url: 'https://jsonplaceholder.typicode.com/posts/',
      header: {
        'Authorization': uni.getStorageSync('hy_user_token')
      },
      filePath: files.url,
      name:'image',  
      formData: {
        // 'photoType': 3 
        file: '@12a813663c4d7c56a43281ba8f296704.jpg',
        type: 'image/jpeg'
      },
      success: (uploadFileRes) => {
        uni.hideLoading();
        const back = JSON.parse(uploadFileRes.data);
        if (uploadFileRes.statusCode == 200) {  
          console.log(111);
        } else {
          uni.showToast(back.msg);
        }
      },
      fail: () => {
        uni.hideLoading();
      },
      complete: function() {
        uni.hideLoading();
      }
    });

预期结果 参数可以传递过去

实际结果 image

系统信息:

ringgoyao commented 2 years ago
 uni.chooseImage({
    count: 1,
    sizeType: ['original'],
    sourceType: ['album', 'camera'],
    success: function (res) {
      console.log(res)
      for (let i = 0; i < res.tempFilePaths.length; i++) {
        const name = res.tempFilePaths[i].split('/').slice(-1)[0]
        const formData = {
          attachType: 'A01',
          sceneType: 'A'
        }
        uni.uploadFile({
          url: import.meta.env.VITE_BASE_API + '/businesscenter/cloudStorage/upload',
          formData,
          filePath: res.tempFilePaths[i],
          name,
          header: { Authorization: store.token },
          timeout: 60000,
          success: (res) => {},
          fail: () => {}
        })
      }
    }

控制台看不到其他信息。header里面的内容能生效

ringgoyao commented 2 years ago

@zhetengbiji 大哥,你们团队能关注下这个问题吗?

ringgoyao commented 2 years ago

name 这个字段是有特殊含义的,误以为是文件名称,实际上是接口里取文件的字段。