Php Drupal-在受管理的文件中创建条目

Php Drupal-在受管理的文件中创建条目,php,drupal,drupal-7,Php,Drupal,Drupal 7,我有一个带有两个自定义字段的自定义内容类型:文件(file)和列表(status) 我可以通过执行以下操作来设置status的值: $node = node_load($n, $r); $node->field_status[$node->language][0]['value'] = 1; node_save($node); 我想为服务器上已经存在的文件创建字段\文件和文件\管理(核心表)的条目。我已经知道文件的MIME类型、大小和路径 实现这一点的正确方法是什么?我将手动

我有一个带有两个自定义字段的自定义内容类型:文件(file)和列表(status)

我可以通过执行以下操作来设置status的值:

 $node = node_load($n, $r);
 $node->field_status[$node->language][0]['value'] = 1;
 node_save($node);
我想为服务器上已经存在的文件创建字段\文件和文件\管理(核心表)的条目。我已经知道文件的MIME类型、大小和路径


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

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

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

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

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

希望有帮助

它也在文件管理表中吗?不,文件通过第三方应用程序进入服务器。有关该文件的信息可以通过Drupal知道的XML文件访问。因此,XML中的数据需要放入文件管理和字段文件中。我认为Drupal会在使用文件的文件字段保存实体时创建文件使用条目,因此您无需自己调用
file\u usage\u add()
file_usage_add($file, 'mymodule', 'node', $node->nid);
$node->field_file[$node->language][] = array(
  'fid' => $file->fid
);