web-dev-qa-db-fra.com

Erreur Ionic Cordova FileUpload: Impossible de charger la ressource locale

Je suis nouveau sur Ionic et j'essaye de télécharger une image prise depuis un appareil photo qui est stockée dans le système de fichiers Android: 

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 pointe vers une image existante: file: ///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg

Dans chrome: // inspect/# devices console, j'obtiens l'erreur suivante et il semble que, à cause de l'erreur, les options FileOptions ne sont pas non plus correctement envoyées. Il s'agit de l'erreur (non autorisé à charger une ressource locale): 

 enter image description here

Version Cordova: 6.1.1 Version ionique: 1.7.14

Des idées? Je suis coincé avec cette erreur depuis un moment.

17
groo

Cela se produit lorsque vous utilisez l'option "livereload" avec Ionic.

Essayez de courir en mode normal

30
alexislg

Une autre raison possible est qu'un plugin Webview est installé (comme https://github.com/ionic-team/cordova-plugin-ionic-webview ou simplement https://github.com/Apache/ cordova-plugin-wkwebview-engine ). Cela ne permettra pas non plus d'utiliser le protocole cdvfile://.

2
Maxim Zubarev

Avec ionic webview> 3.x, vous devez utiliser la méthode convertFileSrc () . Par exemple, si vous avez une variable locale myURL telle que file: // ou/storage.

let win: any = window; // hack ionic/angular compilator
var myURL = win.Ionic.WebView.convertFileSrc(myURL);
0
lucbonnin

07-déc-2018

Ceci est la version où cela fonctionne pour moi sur Ionic 3.9.2 app.

Supprimez la dernière version de webview, puis:

i.e. ionic cordova plugin add [email protected]

https://github.com/ionic-team/cordova-plugin-ionic-webview/releases/tag/v1.2.1

Remarque: cette version fonctionne correctement avec la méthode normalizeURL().

0
Sampath

C'est peut-être trop tard mais ... vous pouvez convertir le chemin natif en blob en utilisant File puis convertir blob en URL en utilisant URL.createObjectURL (blob) et en passant/setting en tant que src à votre élément HTML. Ceci n'est pas nécessaire pour l'environnement de production, mais vous pouvez l'utiliser pour le développement avec -lc. Cela peut fonctionner 

Vraiment simple, je l'ai résolu avec cordova run Android  

0
Gopinath Kaliappan