Drupal 7表单API:文件上传

时间:2012-06-13 14:29:30

标签: forms file drupal file-upload drupal-7

我一直在关注Drupal doc中的表单示例10: http://api.drupal.org/api/examples/form_example!form_example.module/group/form_example/7

以下是我的表格的定义:

function portal_upload_form($form, $form_state) {

    $form['file'] = array(
        '#type' => 'file',
        '#title' => t('Choose a file'),
    );

    $form['document_submit_button'] = array(

      '#type' => 'submit', 
      '#value' => t('upload'), 
    );

    return $form;
}

form_submit hook:

function portal_upload_form_submit($form, &$form_state) {

    $file = $form_state['values']['file'];
        // ...
尽管设置了具有777权限的输入文件,但

$ file仍为“空”。我错过了一些东西而且找不到自己的东西......

谢谢! 学家

2 个答案:

答案 0 :(得分:4)

不回答为什么表单没有提供文件/ url / ...的问题,但它解决了整个上传问题:

function portal_upload_form_submit($form, &$form_state) {

    $file = $form_state['values']['file'];

    $validators = array();
    $file = file_save_upload('file', $validators, 'public://');

答案 1 :(得分:1)

以下是其他一些需要考虑的事项:

  1. file_save_upload()仅验证内容类型的默认列表:jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp

  2. 请务必以关联数组格式命名您的第一项,即'#name' => 'files[img_1]',

  3. file_save_upload() documentation,请参阅第一条评论,了解我的第二点信息。