Ionic Cordova FileUpload错误:不允许加载本地资源

时间:2016-05-07 16:04:57

标签: android cordova ionic-framework mobile

我是Ionic的新手,我正在尝试上传从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指向现有图像:file:///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg

在chrome:// inspect /#devices console中我收到以下错误,看起来因为错误,FileOptions也没有正确发送,这是错误(不允许加载本地资源):

enter image description here

Cordova版本:6.1.1 离子版:1.7.14

有什么想法吗?我有一段时间以来一直坚持这个错误。

5 个答案:

答案 0 :(得分:30)

当您使用Ionic的“livereload”选项时会发生这种情况。

尝试在正常模式下运行

答案 1 :(得分:2)

另一个可能的原因是您安装了webview插件(例如https://github.com/ionic-team/cordova-plugin-ionic-webviewhttps://github.com/apache/cordova-plugin-wkwebview-engine)。此外,这也不允许使用library(dplyr) df1 %>% mutate_at(vars(starts_with('P')), funs(DR = (lead(.)- .)/.)) 协议。

答案 2 :(得分:1)

对于离子Webview> 3.x,必须使用convertFileSrc()方法。 例如,如果您有一个myURL局部变量,例如file://或/ storage。

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

答案 3 :(得分:0)

可能为时已晚......但是你可以使用File将原生路径转换为blob,然后使用URL.createObjectURL(blob)将blob转换为URL并将src作为src传递给你的html元素。这对于生产环境来说是不必要的,但您可以将它用于使用-lc进行开发。它可能会起作用

答案 4 :(得分:0)

2018年12月7日

这是适用于Ionic 3.9.2应用程序的版本。

删除最新版本的webview,然后:

ionic cordova plugin add cordova-plugin-ionic-webview@1.2.1

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

注意:此版本可与normalizeURL()方法配合使用。