Drupal - 在file_managed中创建条目

时间:2011-10-31 21:12:52

标签: php drupal drupal-7

我有一个自定义内容类型,包含2个自定义字段:文件(文件)和列表(状态)。

我可以通过执行以下操作来设置状态值:

 $node = node_load($n, $r);
 $node->field_status[$node->language][0]['value'] = 1;
 node_save($node);

我想为服务器上的ALREADY文件创建field_file和file_managed(核心表)的条目。我已经知道文件的MIME类型,大小和路径。

实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:15)

我会手动实例化文件对象并使用file_save()提交它(以图像文件为例):

global $user;
$file = new stdClass;
$file->uid = $user->uid;
$file->filename = 'image.png';
$file->uri = 'public://path/to/file/image.png';
$file->status = 1;
$file->filemime = 'image/png';

file_save($file);

然后,您应该致电file_usage_add()让Drupal知道您的模块对此文件有既得利益(使用nid对象中的$node):

file_usage_add($file, 'mymodule', 'node', $node->nid);

最后,您可以将文件添加到节点:

$node->field_file[$node->language][] = array(
  'fid' => $file->fid
);

希望有所帮助