【问题标题】:Drupal7 managed_file formDrupal 7 managed_file 表单
【发布时间】:2013-10-04 14:21:37
【问题描述】:

我在 Drupal 自定义模块中有这个 managed_file 表单,用户可以使用此表单上传图像并将其保存在站点/默认/文件下。

     $form['Background_image'] = array(
    '#type' => 'managed_file',
    '#title' => t('Image'),
    '#progress_message' => t('Please wait...'),
     '#progress_indicator' => 'bar',
    '#description' => t('Click "Browse..." to select an image to upload.'),
    '#required' => TRUE,
     ///'#upload_validators' => array('file_validate_extensions' => array('jpeg jpg png gif')),
    '#upload_location' => 'public://backgroundimage/'
    '#default_value' => $this->options['Background image'],
    );

如何添加获取上传文件的功能? 我试过了,但没有用。

    $image = file_load($form_state['values']['Background_image']);

【问题讨论】:

    标签: forms drupal-7


    【解决方案1】:

    您应该能够只创建表单元素,然后使用$form_state['values'] 数组来获取fid。像这样:

    function my_module_form() {
      $form = array();
      $form['background_image'] = array(
        '#type' => 'managed_file',
        '#title' => t('Image'),
        '#progress_message' => t('Please wait...'),
        '#progress_indicator' => 'bar',
        '#description' => t('Click "Browse..." to select an image to upload.'),
        '#required' => TRUE,
        '#upload_location' => 'public://backgroundimage/',
        '#default_value' => $this->options['background image'] //fid
       );
       return $form;
    }
    
    function my_module_form_submit($form, &$form_state) {
      $file = file_load($form_state['values']['background_image']);
      $file->status = FILE_STATUS_PERMANENT;
      file_usage_add($file, 'module_name', 'entity_name', $entity_id);
      file_save($file);
    }
    

    我只是即时写的,所以我确定存在语法错误:) 但这就是想法。如果您没有从 $form_state['values']['background_image'] 获取文件 ID,我会尝试在您的提交处理程序中死去并转储 $form_state['values'] 的内容:

    function my_module_form_submit($form, &$form_state) {
      die(var_dump($form_state['values']['background_image']));
    }
    

    这应该告诉您一些有关从表单返回的内容的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多