Решение:
Я решил изменить тип поля с file
на managed_file
, и теперь оно работает.
function img_menu_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'menu_edit_item') {
$form['banner'] = array(
'#type' => 'fieldset',
...
);
$form['banner']['banner_upload'] = array(
'#type' => 'managed_file',
'#title' => t('Upload a new banner image'),
'#size' => 40,
'#upload_location' => 'public://',
);
$form['#submit'][] = 'img_menu_form_submit';
}
}
function img_menu_form_submit($form, &$form_state) {
$file = file_load($form_state['values']['banner_upload']);
$file->status = FILE_STATUS_PERMANENT;
file_save($file);
dpm($file->uri);
}
Таким образом, когда я делаю dpm($file->uri);
, это работает хорошо, dpm показывает путь к загруженному изображению так, как я хотел.