使用Trigger.io将照片上传到Appcelerator ACS时出错

时间:2013-04-15 01:48:06

标签: appcelerator trigger.io

我正在尝试使用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端出现错误“照片上传所需的照片参数”。< / p>

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

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

1 个答案:

答案 0 :(得分: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来获取数据,但是我们直接与相机或图库进行交互。 ..