Por lo poco que entiendo de tu formulario es que quiere enviar un archivo, si es asi, mira la forma en como se hace. (En el ejemplo que te pase hay dos errores, que aca abajo estan corregidos)
Código PHP:
Ver originalfunction test_menu() {
$items['uploadfile'] = array(
'title' => 'Form upload test',
'page callback' => 'miform_page', //llamas a la pagina
'page arguments' => '',
'access callback' => TRUE, //permisos
'type' => MENU_NORMAL_ITEM, //se muestra como un item del menu
);
return $items;
}
// llamamos a la pagina donde se mostrara en este caso el formulario, pero puede ser cualquier otra cosa, ejemplo texto, consultas, etc etc.
function miform_page(){
return drupal_get_form('_miform_upload');
}
function _miform_upload(){
$form['#attributes']['enctype'] = 'multipart/form-data';
'#type' => 'textfield',
'#title' => 'Nombre del archivo'
);
'#type' => 'file',
'#title' => 'El archivo a subir'
);
'#type' => 'submit',
'#value' => 'Sumbit'
);
return $form;
}
function _miform_upload_validate(){
// tus reglas de validacion
...............................
}
function _miform_upload_submit(&$form, &$form_state){
$validators = array(); //reglas de validacion para un upload
$destino = '/var/htdocs/misarchivos'; //esta es la ruta absoluta donde se guardara(debe tener permisos de escritura)
$file = file_save_upload('mifile', $validators, $destino);
if($file){
drupal_set_message('Subido con exito!');
}
else{
.............
}
}
Obviamente debes borrar la cache cada vez que haces cambios en el hook menu.
Saludos.