【问题标题】:Android Doesn't Recognize Image Downloaded by Flutter AppAndroid 无法识别 Flutter App 下载的图像
【发布时间】:2019-07-22 05:30:32
【问题描述】:

Android Flutter 应用从另一部 Android 手机上的服务器下载图像。下载后,手机图库或文件资源管理器无法打开或查看文件。但是,当通过十六进制编辑器检查时,下载的文件和原始文件是完全相同的副本,并且当导入到 Windows 时,“损坏的”下载文件可以通过图像查看器查看。我能找到的文件之间的唯一区别是 Windows 检查的元数据。这可能是什么原因?

Android 服务器上的原始文件:

在 Android 客户端上下载的文件:

这是我用来从 Uint8list 创建文件的代码:

  Future<File> downloadFileAndroid(Uint8List fileBytes, String fileName) async{

    var dir = await getExternalStorageDirectory();
    File photoFile;

    var photoDirectory = await Directory(dir.path + "/Downloader").create(recursive: true);
    photoFile = await new File(photoDirectory.path + "/" + fileName).create();
    if(await photoFile.exists()){
      await photoFile.writeAsBytes(fileBytes);// also tried flush: true
      print("Created file and it exists");
    } else {
      print("Error: tried to create file but it doesnt exist");
    }
}

【问题讨论】:

    标签: android file flutter dart client


    【解决方案1】:

    我在从 Internet 下载图像并为其设置 png 扩展时遇到了这个问题。在文件名上使用扩展名通常会导致此错误。考虑使用https://pub.dev/packages/image_downloader 使用示例代码中的默认函数下载图像。使用默认选项,扩展名不是由编码器决定的,而是由它自己决定的。

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 2019-02-26
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多