FormData不与ReactNative一起发送:图像上传

时间:2020-10-12 15:31:33

标签: image react-native upload expo multipartform-data

我正在努力通过expo使用React Native将图像上传到服务器上。 当我使用Insomnia时没有问题,因此我的后端可以正常工作,除了名称为file的多部分外。

我正在使用ImagePicker中的expo-image-picker。 但是当我创建FormData并将其发送时,出现了400错误:no file uploaded

这是我的代码:

 _pickImage = async () => {
        try {
            let result = await ImagePicker.launchCameraAsync({
                allowsEditing: true,
                aspect: [4, 3],
                quality: 1
            });
            if (!result.cancelled) {
                await this._postAvatar(result)
            }
        } catch (error) {
            console.log(error);
        }
}

async function postAvatar(result) {
    let localUri = Platform.OS === "android" ? result.uri : result.uri.replace("file://", "")
    let filename = localUri.split('/').pop();

    // Infer the type of the image
    let match = /\.(\w+)$/.exec(filename);
    let type = match ? `image/${match[1]}` : `image`;

    const formData = new FormData();
    formData.append('file', { uri: localUri, name: filename, type });

    return axios.post(API_ENTRYPOINT + '/media_objects', formData, {
        headers: {
            'Content-Type': 'multipart/form-data, boundary: ---01100001011100000110100',
        }
    }).then(response => response.data)
}

当我登录formData时,得到的对象除外。 另外,当我尝试登录formData.get('file')时,也会收到错误消息:formData.get is not a function

0 个答案:

没有答案