saveAs method

Future<String?> saveAs({
  1. required String name,
  2. Uint8List? bytes,
  3. File? file,
  4. String? filePath,
  5. LinkDetails? link,
  6. required String ext,
  7. required MimeType mimeType,
  8. String? customMimeType,
  9. Dio? dioClient,
  10. Uint8List transformDioResponse(
    1. dynamic data
    )?,
})

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;
}