我已经尝试将图像发布到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')
})
})
任何帮助将不胜感激。