更改图像字段的内容

时间:2013-03-12 23:05:58

标签: drupal drupal-7 imagefield

我只想使用node_save()更改文章中图片字段的值,我使用以下代码。

$node = node_load(1);
$node->field_image["und"][0]["filename"] = $file_name;
node_save($node);

当我按F5时,我的文章中的图像不会改变。

我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:1)

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

在您的代码中,您可以执行此操作:

$node = node_load(1);
dsm($node);
....
node_save($node);
dsm($node);

Devel dsm()函数将输出节点的属性&您将能够检查要编辑的任何值。

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

答案 1 :(得分:0)

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

$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;