|
|
@@ -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))
|