[react-native]使用umi-request上传文件遇到的大坑

172 阅读1分钟

环境

    "umi-request": "^1.4.0",

直接在option 里添加

export function uploadFile(formData: FormData) {
  return request('/element/oss/upload', {
    data: formData,
    headers:{
     'Content-Type': 'multipart/form-data'
    }
    method: 'post',
  });
}

这样是没有用的,看了官方文档是这样写的

image.png

哦,原来不能用 headers,需要使用requestType:form啊。高兴的以为问题解决了,改了还是没通

export function uploadFile(formData: FormData) {
  return request('/element/oss/upload', {
    data: formData,
    requestType: 'form',
    method: 'post',
  });
}

然后各种debug,找文件为啥没上传,折腾了一小时。然后我想是不是官方文档引导错了,然后我看了下类型

image.png

然后发现body类型可以为FormData 然后改成了

export function uploadFile(formData: FormData) {
  return request('/element/oss/upload', {
    body: formData,
    requestType: 'form',
    method: 'post',
  });
}

然后就通了!!!!!

image.png

官方文档甚至没有body参数的说明,坑啊