2016-05-07 2 views
11

Я новичок в ионическом и я пытаюсь загрузить изображение, снятое с камеры, которая хранится в Android файловой системы:Ионные Кордова FileUpload ошибка: Не разрешается загружать локальный ресурс

var ft = new FileTransfer(); 
console.log('Uploading: ' + fileURL); 
ft.upload(fileURL, 
    encodeURI("http://192.168.192.62:3000/api/meals/picture"), 
    pictureUploaded, 
    function(error) { 
    console.err(error); 
    $ionicLoading.show({template: 'Ooops error uploading picture...'}); 
    setTimeout(function(){$ionicLoading.hide();}, 3000); 
    }, 
    options); 

var pictureUploaded = function() { 
    console.log('uploaded!'); 
    $ionicLoading.hide(); 
}; 

fileUrl указывает на сущее image: file: ///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg

В chrome: // проверка/# console console Я получаю следующую ошибку, и, похоже, из-за ошибки FileOptions также отправляются неправильно, это ошибка (не разрешено загружать локальный ресурс):

enter image description here

версия Кордова: 6.1.1 Ионные версия: 1.7.14

Любые идеи? Некоторое время я застрял в этой ошибке.

+0

Вы можете просмотреть файл с помощью каких-либо файловых исследователей? Во многих случаях данные приложения не доступны вне приложения. Можете ли вы попробовать сохранить изображение externalRootDirectory и попробовать один раз? – Gandhi

+0

@Marcos, вы решили эту проблему? – BohdanZ

+5

@BohdanZ - Привет, ну на самом деле я только что узнал, что это происходит при использовании опции livereload i.e - «ионный бег android -lc». В этом случае похоже, что плагин выполняет поиск в реальной файловой системе компьютера, а не в устройстве. Поэтому, чтобы избежать этого, я просто запускаю его без опции -lc ... что не оптимально, и мы теряем хром проверьте поддержку, но я не смог найти способ обхода проблемы с использованием опции -lc. –

ответ

20

Это происходит, когда вы используете опцию «livereload» с ионикой.

Попробуйте запустить в обычном режиме

+5

, если вы проверите комментарии по моему вопросу выше, вы заметите, что мы это уже сделали, проблема в том, что это не правильный ответ или проблема с этой проблемой, я бы хотел, чтобы это работало и все еще можно правильно использовать -lc и/или иметь возможность использовать проверку хрома. –

+0

спасибо, у меня такая же проблема, и что работает – Bullgod

0

Это может быть слишком поздно, но ... вы можете преобразовать исходный путь к BLOb с помощью файла затем преобразовать блоб в URL с помощью URL.createObjectURL (BLOB) и передачи/установка в качестве ЦСИ к ваш элемент html. Это не нужно для рабочей среды, но вы можете использовать его для разработки с помощью -lc. Он может работать

0

Really Simple, я решил его с Cordova запуска андроида

0

Другая возможная причина заключается в том, что у вас есть WebView установлен плагин (как https://github.com/ionic-team/cordova-plugin-ionic-webview или просто https://github.com/apache/cordova-plugin-wkwebview-engine). Также это не позволит использовать протокол cdvfile://.

+0

Я думаю, что этот ответ может примениться ко мне. Каков способ ее решения? – andrewf

+0

@andrewf удаление этих самых плагинов –

Смежные вопросы