如何使用flutter在Firebase中上传PDF?

时间:2019-01-22 06:30:21

标签: firebase pdf flutter firebase-storage

我是flutter和firebase的新手,我想使用flutter将PDF上传到firebase中,请通过提供一些资源或链接来帮助我解决此问题。 感谢andvance。

1 个答案:

答案 0 :(得分:0)

您可以使用此依赖性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插入实时数据库。