1

我正在使用 Drupal 7 并有一个自定义模块,该模块创建一个具有文件上传字段的表单:

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),      
);

我需要确保文件扩展名是以下之一:doc、docx、pdf、txt 和 rtf,并且文件大小不大于 2MB

我在文档中没有找到明确的方法来实现这一点。我看到一个地方说使用这个:

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),
  '#upload_validators'  => array("file_validate_extensions" => array("doc docx pdf txt rtf")),
);

但这并没有阻止错误的文件类型并给出错误消息。我是否需要做其他事情,比如在我的 hook_form_validate() 函数中添加一些额外的东西?

我也看到了这个:

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),
);

$form['resume_file']['#upload_validators']['file_validate_extensions'][0] = 'doc docx pdf txt rtf'; 

其中也没有做任何事情。如何验证文件大小和扩展名?

4

3 回答 3

4

它应该实际工作。我们只需要在下面提到file_validate_extensions& 。file_validate_sizeupload_validators

例子:

'#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
于 2013-08-13T21:35:26.940 回答
3

drupl 7中表单api中的文件上传控件,带有扩展名和大小验证

'resume'=>array(
  '#type'   => "managed_file",
  '#title'  => t("Upload Resume in Word Format"),
  '#descripion' => t("Only doc or docx format Files are allowed."),
  '#upload_location'    => "public://resume/",
  "#upload_validators"  => array("file_validate_extensions" => array("doc docx")),
  '#required'=>TRUE,

),
于 2014-02-05T07:08:15.017 回答
1

#upload_validators是托管文件表单元素的非标准表单元素属性的一部分。

$element = array(
  '#type' => 'managed_file',
  '#title' => t('Resume Upload'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

有关托管文件元素类型的更多信息,请参阅Drupal 表单 API 参考

于 2013-11-29T15:42:05.730 回答