REACT NATIVE - iOS
Изображения, обрезанные с помощью ImageEditor, помещаются в ImageStore с URL-адресом rct-image-store://0
По какой-то причине невозможно отправить файл на сервер сRNFetchBlob, используя этот URL:
const uploadProfileImage = (file, userId) => {
const uploadTime = Date.now();
return new Promise((resolve, reject) => {
RNFetchBlob.fetch('POST', `${REMOTE_URL}/api/upload/profilephoto`, {
'Content-Type' : 'multipart/form-data'
}, [file].map((PATH_TO_THE_FILE, i) => {
return { userId, uploadTime, name : 'profilePhoto', filename : `${userId}-${uploadTime}-profilephoto.jpg`, type:'image/jpg', data: file }
}))
.then((res) => {
return resolve(res);
})
.catch((err) => {
console.warn('ERROR',err)
return reject(err);
})
});
}
Или сохраните файл в коллекцию по следующему пути:
const saveFile = (base64Data) => {
const path = RNFetchBlob.fs.dirs.DocumentDir;
var encodedData = base64.encode(base64Data);
return new Promise((resolve, reject) => {
RNFetchBlob.fs.writeFile(`${path}/images/profilepic.jpg`, RNFetchBlob.base64.encode(base64Data), 'base64')
.then((res) => {
console.warn('res', res);
RNFetchBlob.fs.exists(`${path}/images/profilepic.jpg`)
// files will an array contains filenames
.then((exists) => {
return resolve(`${path}/images/profilepic.jpg`);
})
})
.catch((err) => {
return reject(err);
})
})
};
Изображение не записано, все ещесуществующий метод говорит, что он существует.
Как загрузить изображения из RN ImageStore?
Нужно ли мне получить getBase64ForTag изображения из ImageStore и отправить base64данные вместо?
РЕДАКТИРОВАТЬ: мне удалось изменить размер изображения после обрезки и получить абсолютный путь с react-native-image-resizer
, как предложено pritesh здесь: Как получить абсолютный путьrct-image-store: // 0
Есть альтернатива?