【发布时间】:2021-06-27 07:03:59
【问题描述】:
我有一个 React webapp,它获取图像,将其转换为 base64,然后将其发送到我的 REST 端点。
尝试将图像直接从前端保存到firebase storage 工作正常。
当我尝试从我的 REST 中保存它时,它会抛出:
[FirebaseStorageError [FirebaseError]: Firebase Storage: String does not match format 'base64': Invalid character found (storage/invalid-format)] {
code: 'storage/invalid-format',
customData: { serverResponse: null }
}
我这样初始化我的存储:
const firebaseStorage = () => {
if (firebase.apps.length === 0) {
firebase.initializeApp(config.firebaseConfig);
}
return firebase.storage().ref();
};
我尝试像这样上传到存储:
const URI = `images/${uid}/avatar`;
const ref = firebaseStorage().child(URI);
await ref.putString(image64, "data_url");
编辑
将 base64 图像转换为 Blob 并尝试通过 ref.put(blob) 将其保存到存储后,我收到以下错误:
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'byteLength' of undefined
【问题讨论】:
-
提供在服务器端获取
image64的方式。 -
@hoangdv 我在 POST 调用中将其作为字符串传递。如果我复制字符串服务器端并将其粘贴到 64 解码器中,我可以看到正确显示的图像。
-
尝试使用内容类型
pref.putString(image64, "data_url", {contentType: 'image/jpg'}) -
@hoangdv 我的图片是 jpeg 格式,即使我将 contentType 设置为
image/jpg或image/jpeg它仍然无法正常工作并抛出同样的问题 -
我也尝试过剥离 base64 标头“data:image/jpeg;base64”并使用
ref.putString(image64, "base64"),它仍然抛出相同的
标签: node.js typescript firebase firebase-storage