drupal 7 services 3.0用图像创建节点

时间:2014-04-29 11:04:27

标签: javascript drupal-7

我真的被这个困住了;我正在上传一个图像文件并获取fid,但后续创建节点并附加fid的请求失败。尽管图像字段没有用图像fid填充并且图像没有附加到节点,但节点是创建的。

我用这个ajax发布节点:

$.ajax({
    url: localStorage.appurl+"/api/node.json",
    type: 'post',
   data: "node[title]=new node&node[type]=ftritem&node[field_ftritem_images][und][0]    [fid]=7895",
    dataType: 'json',
    headers: {
      'X-CSRF-Token': localStorage.usertoken
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      console.log('error '+errorThrown);

    },
    success: function (data) {         
    console.log("Node created");

    }
  }); 

我收到此错误:

注意:未定义的偏移量:image_field_widget_form()中的0(/var/www/dt11/modules/image/image.field.inc的第358行)。

注意:未定义的偏移量:file_field_widget_form()中的0(/var/www/dt11/modules/file/file.field.inc的第526行)。

以前有人遇到过这个吗?任何建议都是高度适用的。

1 个答案:

答案 0 :(得分:1)

Drupal核心存在问题。我在这里提出了一个问题并提供了一个补丁,但它对我来说无法正常工作:https://www.drupal.org/node/1912458

我确实只通过修补补丁的一部分来实现它。

查找modules / file / file.field.inc的第504行并将其更改为:

if (($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || $delta < $field['cardinality']) && empty($form_state['programmed'])) {

对此:

if (($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || $delta < $field['cardinality'])) {

我不知道这是否会在其他任何地方产生不良副作用,但它确实允许以您使用它的方式使用服务。