Неверный символ Base64 Firebase.Storage () - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь опубликовать изображение в 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')
    })

})

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...