Форма изображения Flutter Image Picker для пути к документу

Я создаю приложение, которое сохраняет изображения локально через sqflite. Вскоре я обнаружил, что изображения сохраняются как временные, что означает, что они будут удалены устройством, и я больше не могу получать эти изображения. Я кодировал, чтобы сохранить его в каталоге документов приложения, но, похоже, он не работает и выдает ошибку

      [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: FileSystemException: Cannot copy file to '/data/user/0/com.example.e4psmap/cache/scaled_0d5d5070-70da-4f42-9055-c31a6ed8d3d51761448072222030817.jpg', path = '/data/user/0/com.example.e4psmap/app_flutter/scaled_0d5d5070-70da-4f42-9055-c31a6ed8d3d51761448072222030817.jpg' (OS Error: No such file or directory, errno = 2)

это мой код:

      void getpic(ImageSource src) async{
    Uint8List byte;
    final picfile = await _imagepicker.getImage(
      source: src, imageQuality: 25
    );
    if(picfile != null){
      Directory appDir = await getApplicationDocumentsDirectory();
      String appdoc = appDir.path;
      final filename = path.basename(picfile.path);
      final local = File('${appdoc}/$filename');
      final lclfile = await local.copy(picfile.path);
    }
    // converted = picfile!.path;
    // setState(() {
    //   _imgfile = picfile!;
    // });
    Navigator.pop(context);
  }

Кто-нибудь знает, почему у меня возникают эти ошибки, и какое-либо исправление этой ошибки, спасибо.

2 ответа

The copy()функция ожидает, что исходный файл будет передан в качестве аргумента, но в вашем коде вы передаетеpicfile.pathвместоFileобъект.

попробуй заменитьlocal.copy(picfile.path) сpicfile.saveTo(local.path), который должен сохранить изображение в нужную директорию.

Если вы замените final соответствующим классом, ошибка будет очень очевидной.

Другие вопросы по тегам