场景:

小程序中选择图片/文件 上传至服务器时,接口要求前端传formData对象

解决:

小程序中没有formData对象 所以我们在使用new FormData()时会报错,而uniapp提供了一个上传文件的api可以获取formData对象https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile

// 触发控件的选择文件或上传前的回调函数 我这里用的是uview 其他控件的返回参数lists可能不同
chooseImg (lists) {
      uni.uploadFile({
        // uploadUrl是已封装好的ip地址,后面是接口地址
        url: uploadUrl + "/api/cockpit/file/upload", 
        filePath: lists[lists.length - 1].url, // 选择文件的本地路径
        formData: {
          file: lists[lists.length - 1].file // 选择的file对象
        },
        header: {
          Authorization: uni.getStorageSync('token') // 携带token
        },
        name: "file",
        success: (res) => {
          // 成功的回调 
        }
      })
    },

注意:移除时触发移除文件的回调,走接口删除图片

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐