在我的Ionic 2应用程序中,我用cordova-plugin-camera
拍照,我通过FILE_URL
(本地设备的图像位置)检索图片,效果很好。
这给了我这样的URL时,与相机拍照:file:///storage/emulated/0/Android/....../1234.jpg
当从图库中选择一张图片时,就像这样:content://com.android.providers.media.documents/document/image%232312
现在我正在尝试使用cordova-plugin-file-transfer
上传此图像。
我的上传功能如下:
upload(){
let options: FileUploadOptions = {
fileKey: 'file',
fileName: 'my_image.jpg',
headers: {'X-CSRF-Token': localStorage.getItem('u:token')}
}
alert(this.imageSrc);
this.fileTransfer.upload(this.imageSrc, encodeURI(this.API_URL), options, true)
.then(data => {
alert("d:"+JSON.stringify(data));
}, err => {
alert("E:"+JSON.stringify(err));
});
}
字符串
但是我收到一个错误对象,
{
"code" : "null",
"source" : "null",
"target" : "null",
"http_status" : "null",
"body" : "null",
"exception" : "null"
}
型
注意:没有额外的错误被抛出
4条答案
按热度按时间1aaf6o9v1#
编辑:
在我过去使用这个插件的地方,我通常会传入一个:
字符串
或者类似的东西:
型
你也可以像这样传入一个数据URI:
型
我看到你正在使用相机插件,你有没有尝试设置相机选项,以返回一个数据的URL和发送?
型
原件
试着像这样构建你的选项:
型
然后尝试像这样上传:
型
vd8tlhqk2#
好吧,问题是Gallery返回了一个
contentURI
,而不是FileTransfer所需要的fileURI
。问题发生在content:
和/storage/
URI上。我使用了一个糟糕的实践解决方案,但由于它仍然没有修复,我将分享它。
我通过添加FilePath(
cordova-plugin-filepath
)修复了它。下面的函数使用存储和内容URI,并将它们转换为文件路径。
(图片来源:global in my case)
字符串
628mspwn3#
当我在离子视图中测试应用程序时,我也遇到了同样的问题,但在我创建apk后,问题消失了,没有错误出现。
uhry853o4#
我有同样的问题,问题是,上传网址格式不好,我把正确的网址,它为我工作.