Javascript 从react native获取文件以上载图像,与`<;输入类型=";文件";onChange={this.fileChangedHandler}>`

Javascript 从react native获取文件以上载图像,与`<;输入类型=";文件";onChange={this.fileChangedHandler}>`,javascript,node.js,reactjs,react-native,react-native-fs,Javascript,Node.js,Reactjs,React Native,React Native Fs,我已经试过了 var photo = { uri: uriFromCameraRoll, type: 'image/jpeg', name: 'photo.jpg', }; 和使用 axios 在删除配置时,我得到 错误503 它提供了配置 错误:多部分:未找到边界 和邮递员一起工作也很好。。。连同标题 我也尝试过上传文件(blob),但同样的错误是 错误:多部分:未找到边界 API在带有代码的ReactJS中运行良好 编辑:我已经通过使用解决了问题,但希望通过使用a

我已经试过了

var photo = {
    uri: uriFromCameraRoll,
    type: 'image/jpeg',
    name: 'photo.jpg',
};
和使用

axios

在删除配置时,我得到

错误503

它提供了配置

错误:多部分:未找到边界

和邮递员一起工作也很好。。。连同标题

我也尝试过上传文件(blob),但同样的错误是

错误:多部分:未找到边界

API在带有代码的ReactJS中运行良好

编辑:我已经通过使用解决了问题,但希望通过使用axios解决问题

代码如下:

 RNFetchBlob.fetch('POST', 'https://helloapp.herokuapp.com/api/v1/upload', {
            'authorization': jwtToken,
            'Content-Type': 'multipart/form-data',
        },
            [
                { name: 'image', filename: 'avatar-png.png', type: 'image/png', data: base64logo },
                { name: 'name', data: name }
            ]
        ).then((resp) => {
            console.log(resp);
        }).catch((err) => {
            console.log(err);
        });
 RNFetchBlob.fetch('POST', 'https://helloapp.herokuapp.com/api/v1/upload', {
            'authorization': jwtToken,
            'Content-Type': 'multipart/form-data',
        },
            [
                { name: 'image', filename: 'avatar-png.png', type: 'image/png', data: base64logo },
                { name: 'name', data: name }
            ]
        ).then((resp) => {
            console.log(resp);
        }).catch((err) => {
            console.log(err);
        });

永远不要在发送文件时定义内容类型头。 浏览器/邮递员将自动添加它,如下所示

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7BojnnMEteO0aHWP
表单边界是表单数据的分隔符。边界是在发送请求时计算的,所以您不能硬编码它

这就是为什么找不到错误边界

现在,您可以使用fetch、axios或其他任何工具,它将起作用


这是MDN Fetch文档中未捕获的非常重要的信息

我已使用解决了问题,但希望使用axios解决问题

代码如下:

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7BojnnMEteO0aHWP
 RNFetchBlob.fetch('POST', 'https://helloapp.herokuapp.com/api/v1/upload', {
            'authorization': jwtToken,
            'Content-Type': 'multipart/form-data',
        },
            [
                { name: 'image', filename: 'avatar-png.png', type: 'image/png', data: base64logo },
                { name: 'name', data: name }
            ]
        ).then((resp) => {
            console.log(resp);
        }).catch((err) => {
            console.log(err);
        });