请为我解决问题:在我的自定义模块img_menu
中,我想添加一个上载图像字段以编辑菜单表单。它有效,字段显示在表单中,但是当我上传图像然后保存表单时,dpm
显示$form_state['values']['banner_upload']
是一个空字符串。有人知道为什么吗?谢谢。
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' => 'file',
'#title' => t('Upload a new banner image'),
'#maxlength' => 40,
);
$form['#submit'][] = 'img_menu_form_submit';
}
}
function img_menu_form_submit($form, &$form_state) {
dpm($form_state['values']['banner_upload']);
}
答案 0 :(得分:0)
解决方案是:
我决定将字段类型从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就像我想要的那样显示上载图像的路径。