真正的iPhone上的rn-fetch-blob无法上传图像(Localhost测试)



我将使用react-native-image-picker (^0.28.0)rn-fetch-blob (^0.10.15)一起使用。到目前为止,它在使用模拟器时起作用,但是当我在Real iPhone上使用它时,图像没有上传,它无法上传下载Promise的以下错误。

"Error: Could not connect to the server."

(是的,服务器正在启动并运行(

如果您看到了这一点,您可能会认为这是一个后端问题,但其他请求在真实设备上正常工作,这是唯一有问题的问题。发送的图像请求是:

{
data: "RNFetchBlob-file:///var/mobile/Containers/Data/Application/843A96A1-0000-40D3-B50F-95D69B94B87A/tmp/5D22283B-2014-4E9E-AC3E-AE677D91A366.jpg"
filename: "IMG_6834.jpg"
name: "pictures"
type: "image/jpeg"
}

与模拟器设备和我的iPhone的唯一区别是数据路径。模拟器上的位置就像"RNFetchBlob-file:///Users/marian-mac/Library/Developer/CoreSimulator/Devices/....etc"

任何想法为什么应该与模拟器有所不同?它似乎正在发送相同的请求。

一些额外的信息,当我在图像组件中预览图像时,它也显示得很好。因此,似乎在真正的iPhone上的路径是正确的。

这是上传图像

的方法
uploadPicture: function(data, token) {
        return RNFetchBlob.fetch('POST', Constants.baseUrl + '/picture', {
            Authorization: "Bearer " + token,
            'Content-Type': 'multipart/form-data;boundary=***BOUNDARY***'
        }, data);
    },

这就是我构建图片请求数组的方式,this.state.images包含图像挑选数据。

this.state.images.forEach((image) => {
                            reqData.push({
                                data: image.imageFile,
                                filename: image.fileName.split('.')[0] + '.jpg',
                                name: 'pictures',
                                type: image.type
                            })
                        });

问题可能是您要上传到非HTTPS URL。遇到了同样的问题,NsallowArbitraryloads使其在模拟器上起作用,并在真实设备上使用它时会出现错误。必须等到它变成https

它似乎不是HTTP或HTTPS的问题。(我的是http(

我在此路径上有一个文件: filepath =/var/mobile/Containers/Data/Application/F8F06A2A-C04D-4B6D-A316-F879E144366B/Documents/test.wav

我尝试了RNFetchBlob.wrap(filePath),但没有用。因此,我尝试将此文件添加到iOS项目的资产和使用RNFetchBlob.wrap(RNFetchBlob.fs.asset('test.wav'))中。瞧,它有效。

结果,filepath

似乎是问题

最新更新