【问题标题】:Can I retrieve an image into Firebase Storage service as File object?我可以将图像作为文件对象检索到 Firebase 存储服务吗?
【发布时间】:2021-04-22 05:03:15
【问题描述】:

我正在使用 PrimeNG 开发一个 Angular 应用程序,并将一些上传的图像存储在 Firebase 存储服务中。

为了上传图片,我使用了这个名为 FileUpload 的 PrimeNG 组件:https://primefaces.org/primeng/showcase/#/fileupload

然后图像会正确保存在 Firebase 存储服务中。它工作正常。每次我拖放要上传的图像时,我都会有这样的事情:

正如您在上一个屏幕截图中看到的,每次我拖放图像时,我都会获得这个 uploadedFiles 数组,其中包含具有 File 类型的对象。 p>

这个文件类型到底是什么?是 PrimeNG 自定义类型还是这个 JS 对象? (这个:https://developer.mozilla.org/en-US/docs/Web/API/File

如果我如何将特定图像从 Firebase 存储服务检索到此 File 对象之一?

【问题讨论】:

  • 1.是的,File 是浏览器中的原生 javascript 对象。 2.你能构造一个File对象吗?是的,请看这里(stackoverflow.com/questions/8390855/…),但在大多数情况下,您永远不需要这样做 --- 为什么要这样做?如果您告诉我们您需要做什么,我们可能会建议您采取更好的方法。 File 对象主要是一个可供开发人员与上传/生成的文件进行交互的 api。 ---
  • 因为我想重新创建一个 File 对象数组,以便将它与 PrimeNG FileUpload 组件一起使用到编辑模式视图中。因此,在文件上传 PrimeNG 组件中,我想显示与特定项目相关的文件
  • 你到底为什么需要实际的文件内容来创建File对象来显示以前上传的文件?您可以只检索有关上传图像的信息并创建用于该组件的虚假文件对象,对吗?

标签: javascript angular firebase firebase-storage primeng


【解决方案1】:

如何将特定图像从 Firebase 存储服务检索到此 File 对象之一?

文件上传到 Firebase 存储后,Firebase JavaScript SDK 无法将其直接获取到本地文件。虽然 iOS 和 Android SDK 具有此选项,但 JavaScript SDK 仅允许 downloading the data via a so-called download URL

【讨论】:

    【解决方案2】:

    这在控制台中清楚地显示了 File 是一个 javascript 数组,其中可能包含多个上传的图像对象。要获得第一个图像对象,您可以执行类似操作 -

    File[0].objectURL.SafeUrlImpl
    

    上一行代码将检索对象 URL。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 2014-12-05
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2017-02-23
      相关资源
      最近更新 更多