即使文件实际上存储在正确的目录中Notice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc)
,单击Upload
或Remove
后我也会收到错误消息。managed_file
这是相关的片段:
$form['some_image'] = array(
'#title' => t('Image'),
'#type' => 'managed_file',
'#description' => t('The uploaded image will be displayed on this page using the image style choosen below.'),
'#default_value' => variable_get('some_image', ''),
'#upload_location' => 'public://some_images/',
);
我正在使用 PHP 5.3.6 在 XAMPP 上运行该实例。降级到 PHP 5.2.9 并没有解决其他论坛中指出的问题。
当我使用 Chrome 来检查 ajax 请求 URL 时,我看到的消息也可以通过查看file/ajax/image/file/form-wRaEJ-JRPqC7q6BSbp6Ccxi_9X1cpiaBzhwlIs9NFd0
我找到的/admin/reports/dblog
错误消息 发生不可恢复的错误。上传的文件可能超过了此服务器支持的最大文件大小 (512 MB)。
请注意,我只上传了一个 100kb 的文件。
4190行includes/form.inc
如下:
function element_validate_integer_positive($element, &$form_state) {
$value = $element['#value'];
if ($value !== '' && (!is_numeric($value) || intval($value) != $value || $value <= 0)) {
form_error($element, t('%name must be a positive integer.', array('%name' => $element['#title'])));
}
}
更新:事实证明,问题不仅在于managed_file
,还在于表单本身。单击提交按钮会显示相同的错误。
目前,我hook_form_validate
的情况如下:
function mymodule_form_validate($form, &$form_state) {
}
删除它会给我一个 Drupal 错误,说它应该在那里。我想我错过了其他一些钩子的实现,但我不知道是哪个。
我在这里想念什么?