如何从 flutter 中 firebase 存储中存在的文件的 url 获取文件名?
How to get file name from the url of the file present in firebase storage in flutter?
我已经创建了一个按钮来从我从 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
有没有办法从中提取文件名?或者通过任何参考方法?
如果您没有对文件的引用,则必须使用正则表达式:
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)!);
}
我已经创建了一个按钮来从我从 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
有没有办法从中提取文件名?或者通过任何参考方法?
如果您没有对文件的引用,则必须使用正则表达式:
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)!);
}