在Drupal 7中生成并附加文件

时间:2013-03-01 14:09:57

标签: php drupal drupal-7

如何在Drupal 7中生成(仅文本)文件,并自动将其附加到特定节点。

有没有办法用模块执行此操作,或者我应该使用代码以某种方式执行此操作(这看起来很棘手)。

2 个答案:

答案 0 :(得分:1)

首先使用drupal file_save_data

创建一个文件
$data = 'Your text data';     // Text data to be saved to file.
$filename = 'filename.txt';   // Filename
$file = file_save_data($data,'public://' .$filename);

现在$ file将包含我们可以附加到节点的文件对象。假设您已经创建了一个文件字段并将其附加到节点类型。让我们称之为'field_custom_file'

然后加载要附加的节点,然后将文件对象强制转换为数组并将其附加到字段中。

$node = node_load($nid);  // $nid is the id of the node where you want to attach the file.
$node->field_custom_file[LANGUAGE_NONE][] = (array)$file;
node_save($node);

答案 1 :(得分:0)

$file = (object) array(
    'uid' => 1,
    'uri' => $filepath,
    'filemime' => file_get_mimetype($filepath),
    'status' => 1,
    'display' => 1,
);
$file = file_copy($file, 'public://');
$node->field_file['und'][0] = $file;