Forms Drupal7表单API:文件上传

Forms Drupal7表单API:文件上传,forms,file,drupal,file-upload,drupal-7,Forms,File,Drupal,File Upload,Drupal 7,我一直遵循Drupal文档中的表单示例10: 我的表格的定义如下: function portal_upload_form($form, $form_state) { $form['file'] = array( '#type' => 'file', '#title' => t('Choose a file'), ); $form['document_submit_button'] = array( '#ty

我一直遵循Drupal文档中的表单示例10:

我的表格的定义如下:

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;
}
以及表格(u submit hook):

function portal_upload_form_submit($form, &$form_state) {

    $file = $form_state['values']['file'];
        // ...
$file为“空”,尽管已将输入文件设置为777权限。我错过了一些东西,自己找不到什么

谢谢!
J.

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

function portal_upload_form_submit($form, &$form_state) {

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

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

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

  • 仅文件保存上传()将验证内容类型的默认列表:jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp

  • 请确保以关联数组格式命名第一项,即
    “#name”=>“files[img_1]”,


  • ,有关第二点的信息,请参见第一条注释。

    您所说的“设置了777权限的输入文件”是什么意思。这些权限设置在哪里?如果它们在您的本地pc中,这是不相关的,因为服务器没有直接从您的pc读取。您好,我用于测试的文件在本地文件系统上确实具有777权限。如果浏览器需要访问该文件(只读),那么至少有读取权限会让人觉得有用:)是的,它确实有帮助