Dear Drupal developers,
I'm trying to upload a file to the server via module, using Forms API. Form is displayed via menu callback as expected. However file is not uploaded. Here's my code:
<?php
function date_pic_settings_form()
{
// Not very interesting code is skipped
if( user_access('date_pic manager') ) {
$form['font'] = array(
'#type' => 'file',
'#title' => 'TTF font file',
);
$form['#attributes'] = array('enctype' => "multipart/form-data");
}
$form['submit'] = array('#type' => 'submit', '#value' => t('Set week Nº') );
return $form;
}
function date_pic_admin_page()
{
// ......
$out .= drupal_get_form('date_pic_settings_form', date_pic_settings_form() );
// ....
print theme('page', $out);
}
function date_pic_settings_form_validate($form_id, $form_values)
{
if(!$file=file_check_upload('font') ) {
form_set_error('font', t('Font file unavailable!') );
}
}
function date_pic_settings_form_submit($form_id, $form_values)
{
if( isset($form_values['font']) && user_access('date_pic manager') ) {
$dir = drupal_get_path('module', 'date_pic') . '/fonts';
if( file_check_directory( $dir ) ) {
$file = file_save_upload('font', $dir, true);
variable_set('date_pic_font', $dir . '/' . $file);
} else {
drupal_set_message( t('WARNING: Server DIR is not accessible. Consult with site admin!', 'status') );