上传后如何从Firebase获取URL文件以返回发送给后端的URL字符串并保存数据库My SQL

时间:2019-08-14 07:04:32

标签: angular firebase spring-boot

我是Angular的新成员。

我正在使用技术来做项目:

  • 后端:Spring Boot

  • 前端:角度

  • 数据库:

*我的SQL要保存信息类型String(text,....)

  • 用于保存信息类型文件(mp3,pdf,png ... vv)的FireBase

我完成了将文件从FireBase推送到Angular的操作。

但是,我不想直接从Firebase获取文件。

目标:我想从Fire Base获取url文件,以将请求发送到后端,然后将其保存在My SQL中。

然后,当绑定数据(包括文本和文件)时,将使用后端和My SQL

那么,您能帮我从Fire Base获取Url文件吗?

非常感谢您。

首先,我使对象上载文件。 其次,我制作服务上传文件。(Pushfile,getfile) 第三,我编写component.ts(contructur中的DI服务)  -我将变量设置为fileupload:any [] = []  -我使用getfile方法调用服务。  -将列表文件保存到文件上传。  -然后,我想从fileupload获取url,但并不完美。 第四,我编写component.html

1 个答案:

答案 0 :(得分:0)

@Paresh Gami 我的项目服务使用FireBase制作6种方法:

  1. 推送文件
  2. 保存文件
  3. 获取文件
  4. 删除文件
  5. 删除文件数据库
  6. 删除文件存储

这是推送文件

的代码
pushFileToStorage(fileUpload: FileUpload, progress: { percentage: number }) {
const storageRef = firebase.storage().ref();
const uploadTask = storageRef
  .child(`${this.basePathFile}/${fileUpload.file.name}`)
  .put(fileUpload.file);

uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED,
  (snapshot) => {
                              const snap = snapshot as firebase.storage.UploadTaskSnapshot;
                              progress.percentage = Math.round((snap.bytesTransferred / snap.totalBytes) * 100);},
          (error) => { console.log(error); },
  () => {
              uploadTask.snapshot.ref.getDownloadURL().then(downloadURL => {
                console.log('File available at', downloadURL);
                fileUpload.url = downloadURL;
                fileUpload.name = fileUpload.file.name;
                this.saveFileData(fileUpload); });
  }
);

}

这是获取文件

 getFileUploads(numberItems): AngularFireList<FileUpload> {
    return this.db.list(this.basePathFile, ref => ref.limitToLast(numberItems));

}