saveFromData method

  1. @override
Future<String> saveFromData({
  1. required Uint8List data,
  2. required String name,
  3. JSaverFileType type = JSaverFileType.WINDOWS_FILE,
})
override

Future method saveFromData takes the Uint8List bytes and String name and JSaverFileType type has String return Value

Implementation

@override
Future<String> saveFromData(
    {required Uint8List data,
    required String name,
    JSaverFileType type = JSaverFileType.WINDOWS_FILE}) async {
  try {
    if (data.isNotEmpty && name.isNotEmpty) {
      if (name.split(".").isNotEmpty) {
        final fType = _baseType(name);
        final val = await _saveFile(fileName: name);
        if (val.isNotEmpty) {
          if (val.endsWith(fType)) {
            final fF = File(val);
            fF.writeAsBytesSync(data);
            return fF.path;
          } else {
            final fF = File(val);
            fF.writeAsBytesSync(data);
            var newPath = val.substring(
                    0, val.lastIndexOf(Platform.pathSeparator) + 1) +
                _baseName(val) +
                fType;
            fF.renameSync(newPath);
            return newPath;
          }
        } else {
          return "Couldn't Write File Data";
        }
      } else {
        return "You Must Provide file extension";
      }
    } else {
      return "Check File , Name";
    }
  } catch (e) {
    return e.toString();
  }
}