,我發現了錯誤Notice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc)
點擊managed_file
的Upload
或Remove
即使該文件實際上是被存儲在正確的目錄之後。注:未定義指數:#VALUE在element_validate_integer_positive()
下面是相關的代碼片段:
$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/',
);
我運行的實例上XAMPP用PHP 5.3.6。降級到PHP 5.2.9並未解決問題,如其他論壇所示。
當我使用Chrome籤Ajax請求的URL,我看到也從看file/ajax/image/file/form-wRaEJ-JRPqC7q6BSbp6Ccxi_9X1cpiaBzhwlIs9NFd0
看到了消息,我從/admin/reports/dblog
發現
錯誤消息時發生不可恢復的錯誤。上傳的文件可能超過了此服務器支持的最大文件大小(512 MB)。
請注意,我只上傳了一個100kb的文件。
的includes/form.inc
4190線如下:
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的錯誤,指出它應該有。我想我錯過了一些其他鉤子的實現,但我不知道哪個。
缺少什麼我在這裏?