如何覆盖Flutter web中下载的文件名?

问题描述 投票:0回答:1

我有一个从 Firebase 存储下载文件的功能,但我想指定要下载的文件的名称,而不是采用用于将其存储在 Firebase 中的名称。

有没有办法做到这一点,也许使用 dart.html 或 url_launcher ?

这是我尝试过的,但它不起作用,它仍然使用存储的名称(

fileName
)。

  Future<void> downloadFile(String fileName) async {
    debugPrint('Downloading file $fileName...');

    final storageRef = FirebaseStorage.instance.ref();
    final pathRef = storageRef.child('path/to/file/$fileName');
    final downloadUrl = await pathRef.getDownloadURL();

    final anchor = html.AnchorElement(href: downloadUrl)
      ..target = 'blank'
      ..download = 'newName'; //Supposedly overwrites the name

    anchor.click();

  }
flutter dart firebase-storage flutter-packages
1个回答
0
投票

你是这个意思吗?

  AnchorElement(
    href: href,
  )
    ..setAttribute("download", "$fileName")
    ..click();

或者像这样?

final anchor = html.AnchorElement(href: downloadUrl)
      ..target = 'blank'
      ..download = '$fileName'; //Supposedly overwrites the name

    anchor.click();
© www.soinside.com 2019 - 2024. All rights reserved.