目标是:
1)允许用户选择图片[为此,我使用image_picker]
2)用户将图像裁剪为1:1的长宽比[我为此使用image_crop]
3)将图像上传到Python后端
问题:
裁剪图像后,尝试读取图像以将其发布将返回:
Unhandled Exception: FileSystemException: Cannot open file, path = '/data/user/0/com.example.AppName/cache/image_crop_26d4daef-e297-456c-9c6d-85d2e4c0d0662042323543401355956.jpg' (OS Error: No such file or directory, errno = 2)
奇怪的是,我可以使用'FileImage(_imageFile)'在Flutter中很好地显示图像(考虑_imageFile是File变量)
只是我不能使用_imageFile.length()
甚至base64Encode(_imageFile.readAsBytesSync())
。
有关发生的事情以及如何解决的任何想法?
答案 0 :(得分:1)
path_provider
插件支持访问两个文件系统位置:
文档目录。
-临时目录是缓存,系统可以随时删除其内容。因此,将数据存储在这里不利于我们以后获取它。
-文档目录是我们现在要选择的目录,这是应用程序用于存储仅其可以访问的文件的目录
您正在使用临时目录 (/data/user/0/com.example.AppName/cache/image_crop_26d4daef-e297-456c-9c6d-85d2e4c0d0662042323543401355956.jpg)
如果未删除文件,则可以使用以下代码片段读取文件内容:
final directory = await getTemporaryDirectory();
// For your reference print the AppDoc directory
final path = directory.path;
final file = File('$path/data.txt');
String contents = await file.readAsString();
return contents;