我有一个自定义内容类型,包含2个自定义字段:文件(文件)和列表(状态).
我可以通过以下方式设置状态值:
$node = node_load($n,$r); $node->field_status[$node->language][0]['value'] = 1; node_save($node);
我想为服务器上的ALREADY文件创建field_file和file_managed(核心表)的条目.我已经知道文件的MIME类型,大小和路径.
实现这个目标的正确方法是什么?
我会手动实例化文件对象并使用
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知道您的模块在此文件中具有既得利益(使用$node对象中的nid):
file_usage_add($file,'mymodule','node',$node->nid);
$node->field_file[$node->language][] = array( 'fid' => $file->fid );
希望有所帮助