Drupal 更改图像字段的内容

Drupal 更改图像字段的内容,drupal,drupal-7,imagefield,Drupal,Drupal 7,Imagefield,我只想使用node\u save()来更改文章中图像字段的值,我正在使用以下代码 $node = node_load(1); $node->field_image["und"][0]["filename"] = $file_name; node_save($node); 当我按F5键时,文章中的图像没有改变 我的代码有什么问题吗?一旦我做了这样的事情,它可能不是最好的,但它对我很有用: $file = file_load($node->field_image['und'][0]['

我只想使用
node\u save()
来更改文章中图像字段的值,我正在使用以下代码

$node = node_load(1);
$node->field_image["und"][0]["filename"] = $file_name;
node_save($node);
当我按F5键时,文章中的图像没有改变


我的代码有什么问题吗?

一旦我做了这样的事情,它可能不是最好的,但它对我很有用:

$file = file_load($node->field_image['und'][0]['fid']);
unset($node->field_image['und'][0]);
file_delete($file);

$file_path = drupal_realpath('sites/default/files/image.png');
$file = (object) array(
          'uid' => 1,
          'uri' => $file_path,
          'filemime' => file_get_mimetype($file_path),
          'status' => 1,
 ); 
$file = file_copy($file, 'public://');
$node->field_im['und'][0] = (array) $file;

我发现处理此类问题的最简单方法是使用模块

在代码中,可以执行以下操作:

$node = node_load(1);
dsm($node);
....
node_save($node);
dsm($node);
Devel dsm()函数将输出节点的属性&您可以检查任何要编辑的值


在上面的示例中,我可以在编辑之前和之后进行检查。如果一切看起来都是正确的,那么这只是一个清除缓存的问题。

[这][1]可能会有所帮助。[1]: