Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal中的匿名文件上传?_Php_Drupal_Content Management System - Fatal编程技术网

Php Drupal中的匿名文件上传?

Php Drupal中的匿名文件上传?,php,drupal,content-management-system,Php,Drupal,Content Management System,有人知道我如何让匿名用户(基本上我网站的所有访问者都是匿名的,因为我不处理用户注册)在我的Drupal 7网站上上传文件(.docx)吗?我是否需要一个特殊的Drupal模块(找不到)或一个PHP黑客…您可以编写一个带有块的自定义模块。该块使用FormAPI使用文件上载程序呈现表单。 提交表单时(由匿名用户或authenitcated提交),可以将文件保存在公共文件系统中。下面是一个表单代码的示例: function mymodule_some_form($form, &$form_st

有人知道我如何让匿名用户(基本上我网站的所有访问者都是匿名的,因为我不处理用户注册)在我的Drupal 7网站上上传文件(.docx)吗?我是否需要一个特殊的Drupal模块(找不到)或一个PHP黑客…

您可以编写一个带有块的自定义模块。该块使用FormAPI使用文件上载程序呈现表单。 提交表单时(由匿名用户或authenitcated提交),可以将文件保存在公共文件系统中。下面是一个表单代码的示例:

function mymodule_some_form($form, &$form_state) {
  $form['some_file'] = array(
    '#type' => 'managed_file',
    '#title' => t('A File'),
    '#default_value' => variable_get('some_file'),
    '#upload_location' => 'public://',
  );

  return $form;
}
提交表单时,保存文件:

function mymodule_some_form_submit($form, &$form_state) {
  $values = $form_state['values'];

  // Save the uploaded file
  if (isset($values['some_file']) && $values['some_file']) {

    // Do the below to make it permanent otherwise 
    // the file will get deleted when cron runs
    $file = file_load($values['healthcheck_image']);
    file_usage_add((object)$file, 'mymodule', 'mymodule', 1);

    if (!$file->status) {
      $file->status = FILE_STATUS_PERMANENT;
    }

    file_save($file);

    // Save file id to variables
    variable_set('some_file', $file->fid);
  }
}

我不太精通Drupal开发。谢谢你的代码,但是有一个易于使用的模块吗?我听说WebForm模块支持文件附件。不管怎样,任何帮助都将不胜感激……没关系!是的,webform模块可以满足您的需要。下载并启用该模块,然后创建webform节点。完成后,您可以单击新创建节点上的“webform”选项卡添加“file”组件。这将允许用户上传文件。如果你还有问题,请告诉我!