【问题标题】:How to get file name from the url of the file present in firebase storage in flutter?如何从flutter中存在于firebase存储中的文件的url获取文件名?
【发布时间】:2021-10-05 02:48:20
【问题描述】:

我已经创建了一个按钮来从我从 firestore 获得的 URL 下载文件,我也需要文件名,有没有办法使用我得到的 URL 来引用文件? 我看到了类似问题的答案,但找不到合适的解决方案。

这是我得到的 URL 类型

https://firebasestorage.googleapis.com/v0/b/student-app.appspot.com/o/img%2FFileName.pdf?alt=media&token=367f598b-425d-4ce0-be2b-804d2103d69e

有没有办法从中提取文件名?还是通过任何参考方法?

【问题讨论】:

  • 你是如何获得下载地址的?你有参考文件吗?如果您有参考,那么您可以使用.name 属性。
  • 这个url获取json类型?当您在 firestorge 上传图片时,您会获得 url 和名称。保存数据库(sql,firestore)
  • 不,实际上我在网络浏览器中创建了一个管理 SDK,从那里上传一个 pdf 文件,所以上传后我得到文件的链接并将其存储在 firestore 文档中。所以我从firestore获得了链接,没有参考。

标签: firebase flutter firebase-storage


【解决方案1】:

如果您没有对文件的引用,那么您将不得不使用正则表达式:

String getFileName(String url) {
  RegExp regExp = new RegExp(r'.+(\/|%2F)(.+)\?.+'); 
  //This Regex won't work if you remove ?alt...token
  var matches = regExp.allMatches(url);

  var match = matches.elementAt(0);
  print("${Uri.decodeFull(match.group(2)!)}");
  return Uri.decodeFull(match.group(2)!);
}

【讨论】:

  • 工作正常,非常感谢@Dharmaraj。你一直在解决我的问题。
猜你喜欢
  • 2023-03-03
  • 2020-03-26
  • 1970-01-01
  • 2020-06-14
  • 2021-01-01
  • 2020-01-19
  • 2021-11-30
  • 2020-03-28
  • 1970-01-01
相关资源
最近更新 更多