我有一个“blob”的内存中字节,但是我想要处理这个“blob”的API只接受dart:io文件对象。
有没有办法创建一个“假的”dart:io文件,只是包装我的内存中的字节,以便我可以将这个“假”文件传递给我的API?
假设文件系统不存在,并假设我无法将内存中的字节写入“真实”文件。
谢谢!
答案 0 :(得分:4)
在pubspec.yaml
dependencies:
path_provider: 0.2.2
将字节数据写入文件,使用它,然后将其删除。
import 'dart:io';
import 'package:path_provider/path_provider.dart';
main() async {
String dir = (await getTemporaryDirectory()).path;
File temp = new File('$dir/temp.file');
var bytes = [0, 1, 2, 3, 4, 5];
await temp.writeAsBytes(bytes);
/*do something with temp file*/
temp.delete();
}
答案 1 :(得分:1)
您可以使用file包中的MemoryFileSystem
创建一个内存文件:
示例:
File file = MemoryFileSystem().file('test.dart')
..writeAsBytesSync(blobBytes);
答案 2 :(得分:-1)
有什么解决办法吗?如果您在 Flutter Web 上,显然无法将字节写入文件。