Forms Drupal7托管文件格式

Forms Drupal7托管文件格式,forms,drupal-7,Forms,Drupal 7,我在Drupal定制模块中有一个托管的_文件表单,用户可以使用该表单上传图像并将其保存在sites/default/files下 $form['Background_image'] = array( '#type' => 'managed_file', '#title' => t('Image'), '#progress_message' => t('Please wait...'), '#progress_indicator' =&

我在Drupal定制模块中有一个托管的_文件表单,用户可以使用该表单上传图像并将其保存在sites/default/files下

     $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']);

您应该能够创建表单元素,然后使用
$form\u 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\u state['values']['background\u image']
获取文件id,我会尝试在您的提交处理程序中死掉并转储
$form\u state['values']
的内容:

function my_module_form_submit($form, &$form_state) {
  die(var_dump($form_state['values']['background_image']));
}
这应该告诉你一些关于表单返回内容的事情