0

ファイルが実際には正しいディレクトリに保存されているにもかかわらず、またはをNotice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc)クリックするとエラーが発生します。UploadRemovemanaged_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 にダウングレードしても問題は解決しませんでした。

file/ajax/image/file/form-wRaEJ-JRPqC7q6BSbp6Ccxi_9X1cpiaBzhwlIs9NFd0Chrome を使用して ajax リクエスト URL をチェックアウトすると、見つけたものを見てからも見られるメッセージが表示されます。/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 に答える