【问题标题】:Flutter: How to get a File object from ImageProvider in Flutter?Flutter:如何从 Flutter 中的 ImageProvider 获取 File 对象?
【发布时间】:2020-01-03 06:12:25
【问题描述】:

如何从 ImageProvider 获取文件?

ImageProvider imageProvider = NetworkImage(networkUrl);
File file = imageProvider ?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    虽然ImageProviderNetworkImage 呈现您的网络图像URL 的内容,但它没有直接的API 或简单的方法让您能够将其转换为File 对象。话虽如此,您仍然可以手动缓存(或下载)图像并获取下载流。

    据我所知,您正在尝试以File 对象的形式访问网络图像 URL。不用ImageProvider,你可以看一下flutter_cache_manager,这是一个用于在本地下载和缓存文件的插件,并保存以备后用。

    使用示例

    1. 从 URL 下载网络图像文件
    await DefaultCacheManager().downloadFile(url);
    
    1. 从缓存目录中检索File 对象
    // Retrieving File object
    var file = await DefaultCacheManager().getSingleFile(imageUrl);
    
    // File object available for use
    // Eg. Reading file as string
    file.readAsStringSync(...);
    

    进一步阅读

    【讨论】:

    • 使用 getSingleFile(url),我收到一个错误:错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:MissingPluginException(在通道 com 上找不到方法 getDatabasesPath 的实现.tekartik.sqflite)
    • 你用的是什么 Flutter SDK 版本?
    • flutter_windows_v1.9.1+hotfix.6
    • 这是您可以从日志中看到的唯一错误消息吗?
    • 这是出现的第一条消息,然后它被重复。
    猜你喜欢
    • 2020-03-11
    • 2021-01-06
    • 2022-12-04
    • 2021-08-05
    • 1970-01-01
    • 2018-11-01
    • 2020-06-19
    • 2019-07-01
    • 2019-10-07
    相关资源
    最近更新 更多