【问题标题】:Cordova / Phonegap FileTransfer iOS Error 1Cordova / Phonegap FileTransfer iOS 错误 1
【发布时间】:2014-07-24 08:58:41
【问题描述】:

我正在编写一个 Cordova 应用程序,它将从相机或图库中拍摄的图像上传到 AWS 服务器。

我已经对其进行了设置,因此它在 android 中可以完美运行,但是当我在 iOS 中运行相同的代码时,它并没有按预期运行。

文件传输上传返回错误 1,根据文档表明尚未找到要上传的文件。但是,我尝试传输的文件 URI 似乎是正确的,因为我能够在 Safari 中打开该 URI 并找到图像。

这是错误:

FileTransferError {
code = 1;
source = "file:///Users/michael/Library/Application Support/iPhone Simulator/7.1-64/Applications/81CAB36F-9B14-42D3-8A00-06FE37A415EB/Documents/.thumbs/albumCover_b9f71c26291844c7f96a9a43fc4c61b6.jpg";
target = "http://***.s3.amazonaws.com/";}

这里是有问题的代码:

var url = "http://***.s3.amazonaws.com/";
            var uploadSuccess = function(r) {
                console.log("Full Image Uploaded");
            }
            var uploadError = function(error) {
                console.log("Upload Failed, Error: ", error.code);
            };
            var fullUpload = function() {
                socket.emit('getAWSCredentials', {pictureID: imageURI.substr(imageURI.lastIndexOf('/') + 1)}, function(policy) {
                    var options = new FileUploadOptions();
                    options.fileKey = "file";
                    options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
                    options.mimeType = "image/jpeg";

                    var params = {
                        AWSAccessKeyId: policy.awsKey,
                        policy: policy.policy,
                        signature: policy.signature,
                        key: policy.key,
                        acl: "public-read",
                        "Content-Type": "image/jpeg"
                    };
                    options.params = params;
                    options.chunkedMode = false;

                    var ft = new FileTransfer();
                    ft.upload(imageURI, encodeURI(url), uploadSuccess, uploadError, options);
                });
            }   
fullUpload();

我应该注意,我已经澄清了套接字正在为 AWS 身份验证返回正确的变量。

【问题讨论】:

    标签: ios angularjs cordova amazon-web-services file-transfer


    【解决方案1】:

    好的,所以我自己修好了。基本上上面的代码大部分都很好,但是输入的 URI 包含 fileupload 无法处理的空格。

    所以我在顶部添加了以下代码:

    imageURI=imageURI.replace(/ /g,"%20");
    

    解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      相关资源
      最近更新 更多