Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap 3.0文件传输下载不工作_Javascript_Ios_Cordova_Phonegap Plugins - Fatal编程技术网

Javascript Phonegap 3.0文件传输下载不工作

Javascript Phonegap 3.0文件传输下载不工作,javascript,ios,cordova,phonegap-plugins,Javascript,Ios,Cordova,Phonegap Plugins,我正在将多部分mime编码图像下载到iOS,如下所示: var ft = new FileTransfer(); url = encodeURI(url); ft.download(url, path, function(fileEntry) {}, function(err) {}); path = fs.root.toURL(); 与 并获取以下错误: body: "Could not create path to save downloaded file: The operation

我正在将多部分mime编码图像下载到iOS,如下所示:

var ft = new FileTransfer();
url = encodeURI(url);

ft.download(url, path, function(fileEntry) {}, function(err) {});
path = fs.root.toURL();

并获取以下错误:

body: "Could not create path to save downloaded file: The operation couldn’t be completed. (Cocoa error 513.)"
code: 1 (file not found)
http status: 200
这提示路径无效,但我看不出有什么问题。我得到的路径如下:

var ft = new FileTransfer();
url = encodeURI(url);

ft.download(url, path, function(fileEntry) {}, function(err) {});
path = fs.root.toURL();
其他一切工作正常,通过拍照,文件可以存储在完全相同的路径中。只是不是通过文件传输下载

Phonegap 3.0中有什么想法或漏洞吗?谢谢

更新-解决方案

FileWriter可以工作,现在甚至可以在iOS和Android上保存blob。示例代码:

var xhr = new XMLHttpRequest();

xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';

xhr.onload = function() {
    var blob = new Blob([xhr.response], {type: 'image/jpeg'});

    // save via FileWriter
};

xhr.send();

我在iOS中发现了问题:

路径: 路径=”file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg"

不起作用,因为它是一个包含“localhost”的URL

从Cordova中的FileEntry可以使用“fullPath”和“toURL”获得字符串。。。在安卓系统上,它们都是用来写文件的。
在iOS上,只有完整路径有效。。。URL未成功写入文件

我在使用iOS模拟器时遇到了问题,但一旦我在实际设备上测试了它,它就成功了。

使用nativeURL获取前缀并将文件名附加到前缀中,然后将其传递给FileTransfer对象,这样就可以了。

您需要使用
FileEntry.toURL()
获得如下路径:

cdvfile://localhost/persistent/path/to/file

请参阅此处的文档:

能否提供一些代码,说明如何解决此问题?那是科尔多瓦的虫子吗?我们也有同样的问题。现在不知道文件传输是否有效,有一段时间没有尝试过。参见上面的代码示例。你需要知道mimeType来构造一个正确的blob,但我想那可能只是文本。如果您需要FileSystemAPI的参考,请查找Eric Bidelman编写的Filer.js。您好@Christian Menkens my我知道您在成功回调返回时做了什么以在图像src上显示它?我获得了成功,但它返回var/mobile…一条路径file://var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg 可以在iOS上使用。我们只是使用此路径将其放入FileUpload。@christianmenkens您确定文件后面只有两个斜杠吗:?我请求FS时得到三个。。。(还有cocoa error 512..在Android上运行良好)我使用dirEntry.nativeURL+filename作为FileTransfer.download在iOS和Android上的目标,它就像一个魔咒!