我正在尝试在 drupal 7 中以编程方式将多张图片附加到节点,但不知道如何。我什至不确定它是否可能。这是我将一张图片附加到节点的代码,它可以工作。请如果有人可以帮助我如何将多张图片附加到图像字段
$node->field_image['und'][0]['fid'] = $get_fid->fid;
我明白了...首先您必须更改图像字段设置以在 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);