File drupal 7-通过代码将文件附加到节点

File drupal 7-通过代码将文件附加到节点,file,drupal,drupal-7,cck,File,Drupal,Drupal 7,Cck,我想将一个文件关联到一个节点。到现在为止,一直都还不错。创建一个cck类型的文件,问题就解决了。但我不能这样做,我不希望用户选择文件。有问题的文件已在系统中。 我尝试将文件作为默认值字段,并用hook\u form\u form\u ID\u alter隐藏它,但失败了 function my_module_form_node_form_alter(&$form, $form_state, $form_id) { if(isset($form['type']) &&

我想将一个文件关联到一个节点。到现在为止,一直都还不错。创建一个cck类型的文件,问题就解决了。但我不能这样做,我不希望用户选择文件。有问题的文件已在系统中。 我尝试将文件作为默认值字段,并用hook\u form\u form\u ID\u alter隐藏它,但失败了

function my_module_form_node_form_alter(&$form, $form_state, $form_id) {
    if(isset($form['type']) && isset($form['#node'])) {
        $type = $form['#node']->type;

        if(stripos($type, 'node-type') === FALSE)
            return;

        switch($type) :
            case 'node-type_xyz':
                $fid = arg(3);
                $file = file_load($fid);

                // make a cck field_invoice a hidden field
                $form['field_invoice']['#prefix'] = '<div style="display:none;">';
                $form['field_invoice']['#suffix'] = '</div>';

                $form['field_company']['und'][0]['value']['#default_value'] = 'ABC';
                $form['field_account_number']['und'][0]['value']['#default_value'] = '09879';
                break;
        endswitch;
    }
}

有人有什么建议吗?

不要用前缀和后缀来隐藏它。相反,将access设置为false——这样,人们就不能摆弄表单了。您可以在hook_nodeapi或submit函数中设置值,或者将类型设置为“value”,并将值设置为您的文件。

不要使用前缀和后缀来隐藏它。相反,将access设置为false——这样,人们就不能摆弄表单了。您可以在hook_nodeapi或submit函数中设置值,或者将类型设置为“value”,并将值设置为文件