Drupal 7 - 是否可以将现有文件附加到新创建的节点?

时间:2012-10-10 02:35:16

标签: drupal drupal-7

尝试在Drupal-7中创建节点并附加现有的罚款。

我花了很多时间将服务器端的现有文件附加到新创建的节点上。 我google了很多,几乎所有的例子都在那里进行文件上传/保存然后附加到节点。 没有得到任何文档说明如何将现有文件附加到新创建的节点。

在较高级别,我的代码如下所示。

 $node = new stdClass();
 $node->type = resume' ;  // a new content type created
 node_object_prepare($node);
 $node->title = My title';
 $node->language = 'en'; 
 $node->uid = 1; 
 $file_obj = file_load($fid); 
 $node->field_resume[$node->language][0] = (array)$file_obj; //field_resume is the   machine name for file field
 node_save($node);

有人可以让我知道我在这里缺少什么吗? 创建新节点,没有附件。 如何将文件附加到节点。

2 个答案:

答案 0 :(得分:1)

通常这应该有效,请尝试添加以下行并告诉我它是否有效

$node = new stdClass();
$node->is_new = TRUE; // This is the line I added.
// Your code continues as is...

希望这有效......穆罕默德。

答案 1 :(得分:0)

我自己没有这样做,但找到了link以下内容:

$node->field_resume[$node->language][0]['fid'] = $fid;

与您的代码的区别在于上面的代码只是设置$ fid。不确定它是否有效,但你可以尝试一下。

此外,您可能希望调用file_usage_add()让Drupal知道节点现在保留对该文件的引用。