我在互联网上搜索了半个小时但却找不到一个。
我想在D7中使用managed_file表单api来允许使用上传图像文件;更具体地说,我认为“#upload_validators”属性可以起作用(如果可能的话,在上传之前验证文件扩展名;或者至少在验证阶段验证但不在提交函数中验证)。我已经检查了示例模块中的image_example和file_example,但找不到它的正确用法。
所以我想知道是否有关于managed_file的正确教程?非常感谢。
更新:我在从file.field.inc搜索drupal目录后看到了一个例子,并按照这个例子编写了这样的代码:
$form['file_upload'] = array(
'#type' => "managed_file",
'#title' => t("Upload"),
'#descripion' => t("Only Image Files are allowed."),
'#progress_indicator' => "bar",
'#upload_location' => "public://img/dish",
"#upload_validators" => array("file_validate_extensions" => "png gif jpg"),
);
这解决了这个问题。
答案 0 :(得分:9)
以下是使用managed_file
字段的示例,其中包含#upload_validators
取自https://drupal.stackexchange.com/a/5630/1103
$form['picture']['file'] = array(
'#type' => 'managed_file',
'#title' => t('picture'),
'#description' => t('Allowed extensions: gif png jpg jpeg'),
'#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
'#upload_location' => variable_get('picture_upload_location'),
'#upload_validators' => array(
'file_validate_extensions' => array('gif png jpg jpeg'),
// Pass the maximum file size in bytes
'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
),
);