0

即使文件实际上存储在正确的目录中Notice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc),单击UploadRemove后我也会收到错误消息。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 错误,说它应该在那里。我想我错过了其他一些钩子的实现,但我不知道是哪个。

我在这里想念什么?

4

1 回答 1

0

事实证明,问题出在同一个表单的一个完全不同的字段,它的#type值不正确numericfield。我不得不删除我所有的表单字段并搜索它们中的哪一个导致了错误。

当单击按钮时,这些字段似乎managed_file也会触发对同一表单中所有其他字段的验证。Upload

于 2013-11-05T23:27:18.413 回答