【发布时间】:2010-08-27 21:06:36
【问题描述】:
我正在尝试在 drupal 7 中以编程方式将多张图片附加到节点,但不知道如何。我什至不确定它是否可能。这是我将一张图片附加到节点的代码,它可以工作。请如果有人可以帮助我如何将多张图片附加到图像字段中
$node->field_image['und'][0]['fid'] = $get_fid->fid;
【问题讨论】:
标签: php drupal drupal-6 drupal-7
我正在尝试在 drupal 7 中以编程方式将多张图片附加到节点,但不知道如何。我什至不确定它是否可能。这是我将一张图片附加到节点的代码,它可以工作。请如果有人可以帮助我如何将多张图片附加到图像字段中
$node->field_image['und'][0]['fid'] = $get_fid->fid;
【问题讨论】:
标签: php drupal drupal-6 drupal-7
我明白了...首先您必须更改图像字段设置以在 1 到 10 之间上传或无限上传,这非常容易
foreach($sav_fid as $sn_fid) {
$node->field_image['und'][$cnt_dlt]['fid'] = $sn_fid;
$cnt_dlt++;
}
这样就可以了 其中 field_image 是附加到节点 api 的核心图像字段。
['und'] 只是我猜是未定义的语言代码。
[$cnt_dlt] 是一个计数器变量,它初始化0而不是增加1,这部分是delta(这个数字会增加附加图像)。
[fid] 是对 managed_file 表中文件的 field_image 引用。
$sn_fid 是 managed_file 表中的 fid(文件 ID)。
为了使用 node_save($node) 创建图片并将其附加到节点;您已使用 file_copy($files); 上传文件并通过创建一个对象并从中保存结果来保存 fid。
【讨论】:
添加文件使用计数器会有好处。 一种不那么简约的方法:
foreach ($sav_fid as $sn_fid) {
$file = file_load($sn_fid);
if (isset($file->filename)) {
file_usage_add($file, 'file', 'node', $node->nid);
$node->field_images[LANGUAGE_NONE][] = array(
'fid' => $file->fid,
'filename' => $file->filename,
'filemime' => $file->filemime,
'uid' => 1,
'uri' => $file->uri,
'status' => 1
);
}
}
node_save($node);
【讨论】: