我正在尝试使用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电话。
关于我需要在数据变量中传递什么以使其工作的任何想法?
答案 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来获取数据,但是我们直接与相机或图库进行交互。 ..