【问题标题】:How to upload a PDF in firebase using flutter?如何使用颤振在firebase中上传PDF?
【发布时间】:2019-06-15 13:56:35
【问题描述】:

我是flutter和firebase的新手,我想使用flutter将PDF上传到firebase,请通过提供一些资源或链接帮助我解决这个问题.. 提前致谢。

【问题讨论】:

标签: firebase pdf flutter firebase-storage


【解决方案1】:

您可以使用此依赖项https://pub.dev/packages/file_picker 将任何类型的文件上传到数据库。

final mainReference = FirebaseDatabase.instance.reference().child('Database');
Future getPdfAndUpload()async{
  var rng = new Random();
  String randomName="";
  for (var i = 0; i < 20; i++) {
    print(rng.nextInt(100));
    randomName += rng.nextInt(100).toString();
  }
  File file = await FilePicker.getFile(type: FileType.CUSTOM, fileExtension: 'pdf');
  String fileName = '${randomName}.pdf';
  print(fileName);
  print('${file.readAsBytesSync()}');
  savePdf(file.readAsBytesSync(), fileName);
}

Future savePdf(List<int> asset, String name) async {

  StorageReference reference = FirebaseStorage.instance.ref().child(name);
  StorageUploadTask uploadTask = reference.putData(asset);
  String url = await (await uploadTask.onComplete).ref.getDownloadURL();
  print(url);
  documentFileUpload(url);
  return  url;
}
void documentFileUpload(String str) {

  var data = {
    "PDF": str,
  };
  mainReference.child("Documents").child('pdf').set(data).then((v) {
  });
}

通过这个您可以将文件上传到firebase存储并将url插入实时数据库。

【讨论】:

  • 如果我需要 2 个扩展怎么办?
  • 指定文件扩展名
  • 但是我怎样才能一次指定多个扩展?
  • 你不能同时指定两个,如果你想选择两种不同类型的文件,你必须选择两次。
  • 这根本不是最优的
猜你喜欢
  • 2021-04-03
  • 2021-04-03
  • 2022-11-12
  • 2021-02-26
  • 2021-10-08
  • 1970-01-01
  • 2022-01-17
  • 2020-03-15
  • 2021-01-04
相关资源
最近更新 更多