2013-11-05 62 views
0

,我發現了錯誤Notice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc)點擊managed_fileUploadRemove即使該文件實際上是被存儲在正確的目錄之後。注:未定義指數:#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的錯誤,指出它應該有。我想我錯過了一些其他鉤子的實現,但我不知道哪個。

缺少什麼我在這裏?

回答

0

事實證明,問題來自同一表單的完全不同的字段,其#type錯誤地用numericfield進行了估價。我不得不刪除我所有的表單字段,並搜索其中哪些是導致錯誤。

它看起來像managed_file領域也引發驗證在同一表格中的所有其他領域被點擊的Upload按鈕時。