如何获取在Flutter中使用图像选择器插件选择的图像的原始路径,而不是复制到缓存?

时间:2020-08-07 21:53:48

标签: flutter dart flutter-image

我正在制作一个Android应用程序,并且使用了图像选择器插件;

final pickedFile = await ImagePicker().getImage(source: ImageSource.gallery);
File image = File(pickedFile.path);

“图像”是应用程序缓存中原始图像的副本,但是,我希望直接使用原始图像的路径将其保存在我的应用程序中,因为我不希望应用程序的缓存大小增加。我看到不推荐使用的方法“ pickImage”完成了此操作(不复制到缓存),但是新的“ getImage”似乎会自动复制,并且'image的路径是缓存的图像的路径。

如何在不缓存所选图像的情况下仅获取其原始路径? (我假设使用原始文件的路径仍然可以在FileImage(File(originalPath))的应用程序中显示它,这是正确的假设吗?)

1 个答案:

答案 0 :(得分:0)

我有一个file_picker包的示例:

  var filePath = '';
  var fileExtension = '';
  var fileName = '';

  void buttonOnTap() async {
    try {
      filePath = await FilePicker.getFilePath(type: FileType.IMAGE);

      if (filePath != null) {
        fileName = filePath.split('/').last;
        fileExtension = fileName.split('.').last;
      } else {
        filePath = '';
        fileName = '';
        fileExtension = '';
      }
    } catch (e) {}

    if (filePath != '') {
      Image.file(File(filePath), fit: BoxFit.cover);
    }
  }