React Native中的FormData抛出空白对象

时间:2020-07-20 07:53:07

标签: javascript react-native

在我的React Native项目中,我使用react-native-image-picker进行图像上传。在这里,我正在使用formData上传图像。图片网址在那里,但是当我管理formData时,它显示{}。我不知道为什么会这样。这是代码:

    uploadImageAsync = async (imgUri, token) => {

        let apiUrl = 'url';
        let formData = new FormData();

        let uriParts = imgUri.split('.');
        let fileType = uriParts[uriParts.length - 1];

        //generate some random number for the filename
        var randNumber1 = Math.floor(Math.random() * 100);
        var randNumber2 = Math.floor(Math.random() * 100);

         formData.append('image', {
            uri: imgUri,
            name: `photo-${randNumber1}-${randNumber2}.${fileType}`,
            type: `image/${fileType}`,
         });

        console.log('formData :', formData);

        let options = {
            method: 'POST',
            body: formData,
            headers: {
                Accept: 'application/json',
                Authorization: 'Bearer ' + token,
                'Content-Type': 'multipart/form-data',
                'Cache-Control': 'no-cache',
            },
        };

        const response = await fetch(apiUrl, options);
        const json = await response.json();
 
    }
    };

formData的控制台不显示任何数据,但是imgUri包含图像路径。为什么formData没有显示数据?

1 个答案:

答案 0 :(得分:1)

FormData.append() value属性可以是USVStringBlob。 因此,您可以尝试对对象进行字符串化,然后选择分析字符串数据。

const imageData = {
    uri: imgUri,
    name: `photo-${randNumber1}-${randNumber2}.${fileType}`,
    type: `image/${fileType}`,
};

const formData = new FormData();
formData.append("image", JSON.stringify(imageData));

const formImageData = formData.get("image");
const parsedFormImageData = JSON.parse(formImageData);

console.log(parsedFormImageData );