ub3lal 3 weeks ago
parent
commit
58bb8e8861
1 changed files with 10 additions and 6 deletions
  1. 10 6
      lib/default_saver.dart

+ 10 - 6
lib/default_saver.dart

@@ -1,4 +1,5 @@
 import 'dart:io';
+import 'dart:typed_data';
 import 'package:path_provider/path_provider.dart';
 import 'package:path/path.dart' as p;
 
@@ -18,16 +19,19 @@ class DefaultSaver {
     return p.join(directory.path, fileName);
   }
 
-  Future<void> saveFile({
-    required File file,
+  Future<File> saveFile({
     required String key,
+    required Uint8List bytes, // Изменили имя для ясности, что это байты
     String? extension,
   }) async {
-    // Если расширение не передано, попробуем взять его из исходного файла
-    final ext = extension ?? p.extension(file.path).replaceFirst('.', '');
-    final String fullPath = _buildPath(key, ext);
+    // Формируем путь. Если расширение не передано, файл будет без него
+    final String fullPath = _buildPath(key, extension);
 
-    await file.copy(fullPath);
+    final file = File(fullPath);
+
+    // Записываем байты в файл.
+    // flush: true гарантирует, что данные будут сброшены на диск перед завершением Future
+    return await file.writeAsBytes(bytes, flush: true);
   }
 
   /// 2. Получение файла (например, для Image.file(file))