【问题标题】:I have a complicated issue with firebase storage我对 Firebase 存储有一个复杂的问题
【发布时间】:2018-12-09 16:35:12
【问题描述】:

我不能上传简单的图片,多么愚蠢!

这是我将图片上传到 Firebase 存储的代码

storage.ref().child(imid).putString(this.state.img.base64 , 'base64')

imid = randomstring() + ".jpg";

this.state.img.base64 = base64string

它实际上是上传图片,但它没有将其作为图片上传

即使从 Firebase 存储页面下载上传的文件

操作系统无法实现打开

【问题讨论】:

  • 这个问题中包含的代码没有多大意义,也没有告诉我们它做了什么或为什么它出现在问题中;看来 imid 是在使用后定义的。 要将文件上传到 Cloud Storage,首先要创建对文件完整路径的引用,包括文件名。 为什么要使用 putString 而不是 ref.put(文件)。尾矿关闭在哪里?您是否浏览过Getting Started Guide,尤其是“从 Blob 或文件上传”部分中的代码?

标签: javascript node.js firebase upload firebase-storage


【解决方案1】:

实际上,您正在将图像转换为 base64 字符串,并在 firebase 存储中以 .jpg 扩展名的名称保存为文件。在您获得相同文件的系统中下载后,这一切都是成功的。但是你得到了保存base64的文件而不是图像。表示文件的编码不是 jpeg 格式,而是文本文件。使用记事本或任何文本编辑器打开文件,我希望你会看到里面的 base 64 字符串。

只有文件名是 JPEG 而不是图像编码

是的,文件扩展名为 jpeg,但文件包含编码为纯文本的 base 64 字符串。所以操作系统试图在图像打开工具中打开文件导致错误。

尝试将其作为文件本身而不是 base64 上传,或者将 base 64 解码器写入 firebase 以进行转换和保存。

请通过此链接获取完整参考 https://github.com/CodeLinkIO/Firebase-Image-Upload-React-Native

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2021-08-22
    • 2021-04-27
    相关资源
    最近更新 更多