Хобрук: Ваш путь к мастерству в программировании

Файл не найден, ошибка с использованием встроенного файлового плагина Ionic

Я пытаюсь реализовать простую регистрацию пользователя, где у пользователя есть возможность загрузить изображение профиля.

Я использую собственный плагин Ionic для обрезки изображения. Это возвращает URI, который я собираюсь использовать для чтения файла из каталога кеша с помощью плагина собственного файла. Теперь проблема в том, что file.readAsDataURL() возвращает ошибку «Файл не найден».

Вот мой код:

addFromGallery(){
 this.camera.getPicture(this.galleryOptions)
  .then((fileUri) => {
      // Modify fileUri format, may not always be necessary
      fileUri = 'file://' + fileUri;
      /* Using cordova-plugin-crop starts here */
      return this.crop.crop(fileUri, { quality: 100 });
  }).then((path) => {
    this.file.readAsDataURL(this.file.cacheDirectory, "a.txt")
      .then(function (success) {
        console.log("SUCESS", success);
        // success
      }, function (error) {
        console.log('ERROR', error);
        // error
      });
  })
}

Я утешил this.file.cacheDirectory, и он возвращает правильный путь, где находится файл .txt (file:///storage/emulated/0/Android/data/com.ionicframework.myapp191974/cache/), но file.readAsDataURL() не может его найти.

Я тестирую на реальном устройстве под управлением Android Nougat.

30.07.2017

  • Когда-то назад, когда я пытался сделать то же самое, я должен знать, что каталог кеша не может быть прочитан из-за проблемы с разрешением, тогда я переключился на externalDataDirectory 31.07.2017
  • Это не похоже на проблему с правами доступа, поскольку плагин Crop может записывать в каталог кеша. Я проверил каталог кеша для приложения с помощью файлового менеджера, и я вижу там обрезанные изображения. 31.07.2017
  • Не могли бы вы попробовать один раз в каталоге данных, чтобы изолировать проблему? 31.07.2017
  • Да, я попробую это сделать, не могу сделать это прямо сейчас, и дам вам знать. Спасибо, брат. 31.07.2017
  • Добро пожаловать. Держать нас в курсе 31.07.2017
  • Тебе удалось это исправить, @AbdulQadeer? 13.10.2020

Ответы:


1

пытаться

this.file.cacheDirectory.replace(/^file:\/\//, '');
09.01.2018
Новые материалы

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..