2

我遇到了一个我找不到任何解决方案的问题。我正在使用 Xcode 版本 4.5.1 (4G1004)、Cordova-2.5.0、iPhone4S(版本 5.0 (9A334))

我想要做的是从本地文件系统(/var/mobile/Library/Notes/notes.sqlite)发送文件到远程服务器使用

var ft = new FileTransfer();
ft.upload("/var/mobile/Library/Notes/notes.sqlite", encodeURI("http://myserver.com/fileUpload.php"), win, fail, null);

function win(r) {
            console.log("Code = " + r.responseCode);
            console.log("Response = " + r.response);
            console.log("Sent = " + r.bytesSent);
        }

        function fail(error) {
            alert("An error has occurred: Code = " + error.code);
            console.log("upload error source " + error.source);
            console.log("upload error target " + error.target);
        }

但它失败并出现错误:

Error opening file /var/mobile/Library/Notes/notes.sqlite: Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn’t be completed. (Cocoa error 257.)" UserInfo=0x164070 {NSFilePath=/var/mobile/Library/Notes/notes.sqlite, NSUnderlyingError=0x148670 "The operation couldn’t be completed. Operation not permitted"}
FileTransferError {
    code = 1;
    source = "/var/mobile/Library/Notes/notes.sqlite";
    target = "xxxxxxxxxxxxxxxxxxx/fileUpload.php";
}

如果我对联系人图像做同样的事情,一切正常。

ft.upload("/var/mobile/Applications/367E3D28-2912-4E2B-B798-B49D71F9CAE6/tmp/photo_HHcOG", encodeURI("xxxxxxxxxxx/fileUpload.php"), win, fail, null);

我查看了档案和提交,但没有找到任何解决方案,除了它是某种权限问题,我从 (Cocoa error 257.) 错误中理解。有没有办法为文件 notes.sqlite 分配权限(我检查了 notes.sqlite 的权限(使用文件管理器),与 photo_HHcOG 相同)。我想可能不是文件权限,而是文件夹或用户权限,因为我试图将 notes.sqlite 的权限更改为为每个人写,但结果相同。

有谁知道可能是什么问题以及这是否已解决,并指出我正确的方向?

谢谢你。

4

1 回答 1

0

来自苹果

不,你不能。沙盒的存在是有原因的。

这意味着您只能在您的应用程序文件夹中读取/创建文件。

两个应用程序可以使用UIDocumentInteractionController进行通信

但目前还没有股票票据应用程序。

于 2013-04-05T02:00:26.963 回答