【问题标题】:Error uploading photo to Appcelerator ACS using Trigger.io使用 Trigger.io 将照片上传到 Appcelerator ACS 时出错
【发布时间】:2013-04-15 21:06:04
【问题描述】:

我正在尝试使用 Trigger.io 将照片上传到 Appcelerator 云服务 (ACS) 存储。

我无法找出用于文件对象的正确语法。 我收到一个错误“错误:语法错误,无法识别的表达式:#[object Object]”

这是我的相关代码:

$("#photograph-record").on("click", function(){
    forge.file.getImage({source:"camera", width: 280, height: 280},function(file) {

    var data = {
          photo: file  //the ID of file input control
        };

    sdk.sendRequest('photos/create.json', 'POST', data, callback);
    });
});

这是 ACS Photo 课程的文档 - http://cloud.appcelerator.com/docs/api/v1/photos/create

必填参数 - 照片:附加的二进制文件

由于它需要是二进制文件,我尝试了“photo: forge.file.string(file)”(http://docs.trigger.io/en/v1.4/modules/file.html#modules-file),但在 Appcelerator 端出现错误“照片上传所需的照片参数”。

我使用 forge.file.url 将图像传递到我的应用程序页面视图中没有问题,所以我知道文件对象没有问题,它只是找出正确的语法将其作为二进制文件传递给 sdk。 sendRequest 调用。

关于我需要传递数据变量以使其工作的任何想法?

【问题讨论】:

    标签: appcelerator trigger.io


    【解决方案1】:

    Appcelerator 文档在这里非常好 - 看起来他们期待一个名为 photo 的 POST 参数,其中包含二进制图像数据。

    使用我们的request module

    $("#photograph-record").on("click", function(){
        forge.file.getImage({source:"camera", width: 280, height: 280},function(file) {
            file.name = 'photo'; // the magic    
            forge.request.ajax({
                url: 'https://api.cloud.appcelerator.com/v1/photos/create.json',
                files: [file],
                success: function () { ... },
                error: function () { ... }
            });
        });
    });
    

    我在这里看不到使用他们的 JS 库的方法,因为他们希望您传递 HTML 表单元素的 id 以从中获取数据,但我们直接与相机或画廊进行交互。 ..

    【讨论】:

    • 谢谢詹姆斯,我会试试看效果如何。我只需要找出通过 forge.request.ajax 调用传递我的 ACS 凭据的正确方法。希望它就像 REST 调用一样:api.cloud.appcelerator.com/v1/photos/create.json?key=<YOURAPP APP KEY>
    • 终于弄明白了。必须将 session_id 添加到 URL 以验证用户并添加 POST 类型。 forge.request.ajax({ url: 'https://api.cloud.appcelerator.com/v1/photos/create.json?key=app_key_goes_here&amp;_session_id=session_key_goes_here, type: 'POST', files: [file], success: function () { alert('Success'); }, error: function (data) { alert('Error' + data.content ); } });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    相关资源
    最近更新 更多