Заставка галереи изображений Flutter - как получить доступ к пути

Я использую плагин Image Gallery Saver для сохранения изображений. Метод

await ImageGallerySaver.saveImage(pngBytes)

возвращает объект

{filePath: file:///storage/emulated/0/wallpapers/1608205629471.jpg, errorMessage: null, isSuccess: true}

Я хочу получить путь к только что сохраненному файлу ( /storage/emulated/0/wallpapers/1608205629471.jpg).

Есть ли способ этого добиться?

3 ответа

Решение

Это объект Map . Доступ к filePath String вот так:

      var response = await ImageGallerySaver.saveImage(pngBytes);

// value = json['key']
var path = response['filePath']; // 'file:///storage/emulated/0/wallpapers/1608205629471.jpg'

вы можете получить доступ к ключу с карты, подобной этой

      final imagePath = result['filePath'].toString();

затем, если вам нужно удалить путь к местоположению file:// с регулярным выражением

      final imagePath = result['filePath'].toString().replaceAll(RegExp('file://'), '');

прочтите документацию для получения дополнительной информации

Сначала вам нужно указать идентификатор изображения в базе данных, которую вы хотите получить.

Затем передайте идентификатор с помощью этого метода, я даю фрагмент, который я использовал:

      import 'package:path/path.dart' as p;
Directory _appDocsDir;
        class ImageCashUtil {
      ImageCashUtil() {
        init();
      }
      init() async {
        WidgetsFlutterBinding.ensureInitialized();
        _appDocsDir = await getApplicationDocumentsDirectory();
        return _appDocsDir;
      }
    
      File fileFromDocsDir(String filename) {
        String pathName = p.join(_appDocsDir.path, filename);
        return File(pathName);
      }
    }
Другие вопросы по тегам