Плагин Cordova file возвращает ошибку с кодом: 12, PATH_EXISTS_ERR только на iOS - PullRequest
0 голосов
/ 09 декабря 2018

Я пишу простое приложение в Ionic 3 для отправки форм с небольшим количеством вложений (изображение с камеры, изображение из галереи и один 20-секундный фильм).После отправки формы на сервер формы обрабатываются и получают статусы.Статусы выбираются через приложение, чтобы проинформировать пользователя.Вся отправленная форма сохраняется в SQLite, чтобы предоставить пользователю доступ ко всем его формам и приложениям (изображениям и фильмам).Для этого я копирую фотографии и фильмы в файл плагина Cordova:

let imageData = await this.camera.getPicture(options);
let dir = imageData.split('/');
let fileName = dir[dir.length - 1];
dir.pop();
let fromDirectory = dir.join('/');
let toDirectory: string = this.file.syncedDataDirectory;
await this.file.copyFile(fromDirectory, fileName, toDirectory, fileName);

Параметры моей камеры:

const options: CameraOptions = {
      quality: 50,
      destinationType: this.camera.DestinationType.FILE_URI,
      sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
      mediaType: this.camera.MediaType.PICTURE,
      encodingType: this.camera.EncodingType.JPEG
    }

Все работает на Android, но на iOS я получаюошибка с кодом: 12, PATH_EXISTS_ERR.Ошибка возникает только с картинками.Я копирую фильм так же, как изображения:

await this.file.copyFile(fromDirectory, movieName, toDirectory, movieName)

В первом сеансе я добавляю одно изображение с камеры и одно из галереи (Camera Roll), и все работаетхорошо.Проблема возникает в новом сеансе, когда я пытаюсь добавить другие изображения.Если я добавил два изображения в предыдущем сеансе, во втором сеансе я получаю дважды ошибку: PATH_EXISTS_ERR, и третий подход к добавлению изображения является успешным.Похоже, что в одном файле сессии плагин пишет картинку с индексом 001, 002 и т. Д. Но в новом файле сессии плагин пытается снова написать новую картинку с индексом 001, но этот путь уже существует.Я не могу найти какую-либо репликацию этой ошибки, возможно, я неправильно использую файловый плагин, но на Android все прекрасно работает с тем же способом копирования файла в файловый плагин (один, за исключением того, что я копирую файлы вthis.file.dataDirectory).Если я не найду решения, возможно, я преобразую картинки в base64 и буду хранить их в виде строки.Буду очень признателен за любые советы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...