Я пытаюсь опубликовать изображение в Firebase.Storage () уже более недели, но безуспешно.Сначала используется блоб / файл, который в итоге не работает из-за отсутствия в Node.JS типа блоба.Теперь с проводкой в виде base64.Я испробовал все исправления, которые смог найти здесь, но безуспешно.Я получаю сообщение об ошибке:
Firebase Storage: строка не соответствует формату 'base64: найден недопустимый символ
на стороне клиента
handleImage = ( event ) => {
const target = event.target
const files = target.files
if (files.length > 0) {
const fileToLoad = files[0];
const fileReader = new FileReader();
fileReader.onload = event => {
const srcData = event.target.result; // data: base64
console.log(srcData)
let encodedImage = srcData.split(/,(.+)/)[1];
const options = {
file: encodedImage,
fileName: fileToLoad.name
}
axios.post(`${process.env.API_URL}/api/dashboard/post-image`, options)
}
fileReader.readAsDataURL(fileToLoad)
}
}
на стороне сервера
router.post('/post-image', (req, res, next) => {
console.log(req.body.file)
const fileName = req.body.fileName
const message = req.body.file
const storageRef = firebase.app().storage().ref()
storageRef.child(`${fileName}`).putString(message, 'base64')
.then(snapshot => {
console.log(snapshot, 'uploaded image')
})
})
Любая помощь будет принята с благодарностью.