3

我一直在关注 Drupal 文档中的表单示例 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 钩子:

function portal_upload_form_submit($form, &$form_state) {

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

尽管设置了具有 777 权限的输入文件,$file 仍为“空”。我错过了一些东西,我自己找不到什么......

谢谢!J。

4

2 回答 2

4

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

function portal_upload_form_submit($form, &$form_state) {

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

    $validators = array();
    $file = file_save_upload('file', $validators, 'public://');
于 2012-06-13T15:08:13.863 回答
1

这里还有一些其他需要考虑的事情:

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

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

file_save_upload() 文档,有关我的第二点的信息,请参阅第一条评论。

于 2013-03-17T14:02:07.907 回答