Я пишу простое приложение в 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 и буду хранить их в виде строки.Буду очень признателен за любые советы!