我正在使用package file_picker从设备中选择PDF文件并将其上载到远程服务器。
void capturarPDF() async{
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['pdf'],
);
if(result == null) return;
PlatformFile file = result!.files.first ;
print("file ${file.path}");
_upload(file);
}
void _upload(File file) {
if (file == null) return;
setState(() {});
String base64Image = base64Encode(file.readAsBytesSync());
String fileName = file.path!.split("/").last;
String? mimeStr = lookupMimeType(file.path.toString());
var fileType = mimeStr!.split('/');
var tipo = "3";
http.post(Uri.parse(phpEndPoint), body: {
"image": base64Image,
"name": fileName,
"cod_sat": widget.codigo,
"tipo": tipo,
}).then((res) async {
setState(() {
});
}).catchError((err) {
print(err);
});
}
我的问题是在_upload(file);
行我得到错误:
The argument type 'PlatformFile' can't be assigned to the parameter type 'File'
是否有方法将由file_picker包生成的PlatformFile转换为上传文件所需的File类型?
1条答案
按热度按时间qij5mzcb1#
PlatformFile
有一个对文件的路径引用,你可以用这个路径设置一个File
对象,如下所示: