无效字符Base64 Firebase.Storage()

时间:2019-02-01 00:08:43

标签: node.js reactjs firebase base64 firebase-storage

我已经尝试将图像发布到Firebase.Storage()超过一个星期了,但没有成功。首先使用blob /文件,由于Node.JS没有blob类型,该文件最终无法正常工作。现在以base64形式发布。我尝试了所有无法在这里找到的修复程序,但均未成功。我得到的错误是:

  

Firebase存储:字符串与格式'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')
    })

})

任何帮助将不胜感激。

0 个答案:

没有答案