首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ngx-uploader上传到Firebase存储

使用ngx-uploader上传到Firebase存储
EN

Stack Overflow用户
提问于 2017-01-12 08:10:42
回答 1查看 1K关注 0票数 0

如何使用ngx-uploader或类似工具将图片上传到firebase?

我面临的主要问题是,大多数Angular 2 uploader的实现都需要一个URL,但我需要上传到firebase引用,而我不确定如何将它们组合在一起,或者是否可以做到。也许我没有以正确的方式看待它。

我找到了这个script

代码语言:javascript
复制
uploadImage(name, data) {
    let promise = new Promise((res,rej) => {
      let fileName = name + ".jpg";
      let uploadTask = firebase.storage().ref(`/teams/${fileName}`).put(data);
      uploadTask.on('state_changed', function(snapshot) {
      }, function(error) {
        rej(error);
      }, function() {
        var downloadURL = uploadTask.snapshot.downloadURL;
        res(downloadURL);
      });
    });
    return promise;
  }

这说明我需要使用firebase.storage().ref

但是如果我看一下ngx-uploader documentation example,我就不知道如何使用它了。

EN

回答 1

Stack Overflow用户

发布于 2017-02-04 21:46:40

如果您遵循了文档,那么您可能正在运行以下代码

代码语言:javascript
复制
 startUpload() {
    this.inputUploadEvents.emit('startUpload');
  }

它将运行将使用NgUploaderOptions中的url变量的代码,如果您使用的是firebase存储,则不需要该变量。我所做的是添加(change)事件,如下所示

代码语言:javascript
复制
 <input (change)="onChange($event)"
           type="file"
           class="hidden"
           ngFileSelect
           [options]="options"
           [events]="inputUploadEvents"
           (onUpload)="handleUpload($event)"
           (onPreviewData)="handlePreviewData($event)"
           (beforeUpload)="beforeUpload($event)">

在后面

代码语言:javascript
复制
   onChange(event: EventTarget) {
        let eventObj: MSInputMethodContext = <MSInputMethodContext> event;
        let target: HTMLInputElement = <HTMLInputElement> eventObj.target;
        let files: FileList = target.files;
        this.file = files[0];

    }

现在您只需要在ref.put()中插入this.file ...

请注意,这仅适用于单个图像。希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41603044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档