我正在将这样一个多部分的mime编码图像下载到iOS:
var ft = new FileTransfer();
url = encodeURI(url);
ft.download(url, path, function(fileEntry) {}, function(err) {});
与
path = "file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg"
并收到以下错误:
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
这暗示了一条无效的路径,但我看不出它有什么问题。我得到这样的道路:
path = fs.root.toURL();
其他一切正常,文件可以通过拍照存储在完全相同的路径中。只是不通过FileTransfer下载。
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();
答案 0 :(得分:3)
我在iOS中发现了这个问题:
路径: path =“file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg”
不起作用,因为它是一个带有“localhost”的URL。
在Cordova的FileEntry中,可以使用“fullPath”和“toURL”来获取字符串......在Android上,它们都可以写入文件。 在iOS上只有fullPath有效... URL无法成功写入文件!
答案 1 :(得分:0)
我在iOS模拟器上工作时遇到了问题,但是一旦我在实际设备上测试它,它就可以了。
答案 2 :(得分:0)
使用nativeURL获取前缀并将文件名附加到它并将其传递给FileTransfer对象。
答案 3 :(得分:0)
您希望使用FileEntry.toURL()
获取如下所示的路径:
cdvfile://localhost/persistent/path/to/file
请参阅此处的文档:https://github.com/apache/cordova-plugin-file-transfer