我正在尝试使用drupalgap将图像从android模拟器保存到drupal网站,但是我无法做到这一点,下面是我为了将数据保存到drupal网站而写的ajax调用。
我的AJAX电话
$.ajax({
url: "http://192.168.1.146/drunew/?q=my_services/node.json",
type: 'post',
data: 'node[type]=drupalgap&node[title]=' + encodeURIComponent(title) + '&node[language]=und&node[body][und][0][value]=' + encodeURIComponent(body) + '&node[files][field_filef_und_0]=' + encodeURIComponent(filef),
dataType: 'json',
beforeSend: function (request) {
request.setRequestHeader("X-CSRF-Token", token);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('page_node_create_submit - failed to login');
console.log(JSON.stringify(XMLHttpRequest));
console.log(JSON.stringify(textStatus));
console.log(JSON.stringify(errorThrown));
},
success: function (data) {
$.mobile.changePage("main.html", "slideup");
}
});
但是上面的代码不适用于文件字段,然后在做了一些R& D后我知道首先我们必须得到fid,然后保存它。
下面是为图像创建fid后的响应。
{"fid":"47","uri":"http://192.168.1.146/drunew/my_services/file/47"}
我怀疑的是如何在上面的ajax调用中集成此响应以将图像保存在drupal站点中。
任何帮助,谢谢..
答案 0 :(得分:0)
获得文件ID后,将其与节点创建/更新资源一起传递,如下所示:
节点创建 - POST
http://www.example.com/?q=drupalgap/node.json&title=Hello&type=article&field_images[und][0][fid]=47
节点更新 - PUT
http://www.example.com/?q=drupalgap/node/123.json&field_images[und][0][fid]=47
仅供参考,此功能现已内置于DrupalGap核心中,因此在添加/编辑节点时您不必做太多工作。