我试图将图像上传为二进制。我使用了run -fetch-blob库。因为正常获取会导致网络错误。
const path = file.path.replace('file://', '');
const uploadPath = RNFetchBlob.wrap(path);
RNFetchBlob.fetch(
'PUT',
SERVER_URL,
uploadPath,
)
.then(res => {
console.log('image uploaded res ---> ',res);
})
.catch(err => {
console.log(err);
});
它上传一个空流,服务器存储一个零字节大小的文件。这个问题有什么解决办法吗?
它上传一个空流,服务器存储一个零字节大小的文件。这个问题有什么解决办法吗?
这是因为它无法在path specified
中找到映像文件。你能不能试一下,然后告诉我?
const filePath = Platform.OS === 'ios'
? res.path().replace('file:///', '').replace('file://', '')
: res.path().replace('file://', '').replace('file:/', '');
RNFetchBlob.fetch('PUT', 'your-server-url', {
// this is required, otherwise it won't be processed as a multipart/form-data request
'Content-Type' : 'multipart/form-data',
}, [
// append field data from file path
{
name : 'test',
filename : 'test.png',
// Change BASE64 encoded data to a file path with prefix `RNFetchBlob-file://`.
// Or simply wrap the file path with RNFetchBlob.wrap().
data: RNFetchBlob.wrap(filePath)
}
]).then((resp) => {
// ...
}).catch((err) => {
// ...
})
希望有帮助