php - Drupal - 在 file_managed 中创建条目

标签 php drupal drupal-7

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

我可以通过以下方式设置状态值:

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

我想为服务器上已有的文件创建 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
);

希望对你有帮助

关于php - Drupal - 在 file_managed 中创建条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959829/

相关文章:

php - 将 PHP 代码添加到 Drupal 7 页面

apache - 这些配置更改是否适合我的需要?

PHP json_encode 不适用于对象数组

php - 如何更改 MySQL 查询的结果排序?

css - 使 "body size"变大

ajax - 无法保留 Drupal 7 中依赖选择框的值

php - 通过两个ID对查询搜索进行排序然后合并

PHP 表单发布到 MySQL 数据库错误

php - 根据选择框的值更改图像大小

drupal - 在 drupal 7 中重新处理附加图像