I am using the File Picker Plugin to choose a file from a device. The file is chosen in the datatype of a PlatformFile, but I want to send the file to Firebase Storage and I need a regular File for that. How can I convert the PlatformFile into a File so that I can send it to Firebase Storage? Here is the code:
PlatformFile pdf;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
void _trySubmit() async {
final isValid = _formKey.currentState.validate();
if (isValid) {
_formKey.currentState.save();
final ref = FirebaseStorage.instance
.ref()
.child('article_pdf')
.child(title + '-' + author + '.pdf');
await ref.putFile(pdf).onComplete; // This throws an error saying that The argument type 'PlatformFile' can't be assigned to the parameter type 'File'
}
}
void _pickFile() async {
FilePickerResult result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['pdf'],
);
if (result != null) {
pdf = result.files.first;
}
}
Try this: PlatformFile pdf; final File fileForFirebase = File(pdf. path);
For Single file: If you want to pick a single file then no need to pass allowMultiple, default value is false for allowMultiple. For Multiple file: If you want to pick more then one file at once(multiple file picking), you need to use below code. 2. allowedExtensions: : Allow only specific extensions file to be picker.
You can add a file attachment to a PDF document using the PdfAttachment class. The following code example shows this. //Creates a new PDF document PdfDocument document = PdfDocument(); //Create and add attachment to the PDF document document. attachments.
Try this:
PlatformFile pdf;
final File fileForFirebase = File(pdf.path);
Happy coding! :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With