在entityFormSubmit的drupal 7中上传文件

时间:2014-05-28 10:43:57

标签: php drupal drupal-7

我创建了一个权利表单,在表单提交后我将数据存储在数据库中。但是在文件的情况下它不上传文件并将文件ID存储在我的数据库中。我是创建Entityform的新手,所以任何关于此的帮助都是适合的。

如果我做错了请告诉我这里是代码片段。

这是文件类型字段

$entity_form['fields']['file_id'] = array(
                '#type' => 'file',
                '#title' => t('File'),
                '#title_display' => 'visible',
                '#size' => 128,
                '#theme_wrappers' => array(),

        );

这是entityFormSubmit

 public function entityFormSubmit(&$entity_form, &$form_state) {
    $child_form_state = form_state_defaults();
    $form_state['storage']['#parent'] = $entity_form['#parents'];
    $child_form_state['values'] = drupal_array_get_nested_value($form_state['values'], $entity_form['#parents']);
    foreach ($child_form_state['values']['fields'] as $key => $value) {
        if ($key != 'options') {
            $entity_form['#entity']->$key = $value;
        } elseif($key == 'options') {
            $entity_form['#entity']->$key = serialize($value);
        }

    }

1 个答案:

答案 0 :(得分:3)

也许您可以使用managed_file字段类型...

非常简单,您可以在https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#managed_file

找到一个用法示例

不要忘记在提交处理程序中调用file_usage_add函数。