saveAs method
saveAs This method will open a Save As File dialog where user can select the location for saving file.
name
: Name of your file.
bytes
: Encoded File for saving
Or
file
: File to be saved.
Or
filePath
: Path of file to be saved.
Or
link
: Link of file to be saved.
LinkDetails is a model which contains link
& headers
LinkDetails(
link: 'https://www.google.com',
headers: {
'your-header': 'header-value',
},
),
Out of these 4 parameters, only one is required.
ext
: Extension of file.
mimeType (Mainly required for web): MimeType from enum MimeType..
Implementation
Future<String?> saveAs({
required String name,
Uint8List? bytes,
File? file,
String? filePath,
LinkDetails? link,
required String ext,
required MimeType mimeType,
String? customMimeType,
Dio? dioClient,
Uint8List Function(dynamic data)? transformDioResponse,
}) async {
if (mimeType == MimeType.custom && customMimeType == null) {
throw Exception(
'customMimeType is required when mimeType is MimeType.custom');
}
bytes = bytes ??
await Helpers.getBytes(
file: file,
filePath: filePath,
link: link,
dioClient: dioClient,
transformDioResponse: transformDioResponse,
);
_saver = Saver(
fileModel: FileModel(
name: name,
bytes: bytes,
ext: ext,
mimeType:
mimeType == MimeType.custom ? customMimeType! : mimeType.type));
String? path = await _saver.saveAs();
return path;
}