Проблема c file_save_upload

Главные вкладки

Аватар пользователя vpolotskiy vpolotskiy 5 октября 2010 в 0:55

Здравствуйте!
Нужно создать модуль, который кроме своего основного функционала, будет загружать файлы определенного расширения на сервер.
Использую функцию file_save_upload.
Код:

function mymodule_perm() {
  return array('access mymodule content', 'access administration pages');
}
function mymodule_menu() {
        $items = array();
 
        $items['admin/settings/mymodule'] = array(
                'title' => t('Mymodule'),
                'description' => 'Description',
                'page callback' => 'show_form',
                'access arguments' => array('access administration pages'),
                'type' => MENU_NORMAL_ITEM,
        );
 
        return $items;
}
function mymodule_addform() {
        $form = array();       
        $form['fieldset'] = array(
                '#weight' => '0',
                '#collapsed' => '0',
                '#type' => 'fieldset',
                '#collapsible' => '1',
                '#title' => t('Upload file'),
        );     
        $form['fieldset']['uploadfile'] = array(
                '#weight' => '0',
                '#size' => '30',
                '#type' => 'file',
                '#title' => t('File'),
        );
        $form['fieldset']['submit'] = array(
                '#weight' => '0',
                '#size' => '30',
                '#type' => 'submit',
                '#value' => t('Add'),
        );     
       
        return $form;
}

function show_form() {
        return drupal_get_form('mymodule_addform');
}

function mymodule_addform_validate($form, &$form_state) {
        $validators = array();
        $validators = array('file_validate_extensions' => array('jpg'));
        $dir = file_directory_path() . '/mymodulefiles';
        $replace = FILE_EXISTS_RENAME;
    if(file_check_directory($dir, 1)) {
                $file = file_save_upload('uploadfile', $validators, $dir, $replace);
        } else {
                drupal_set_message(t('Can\'t acces directory'));               
        }
}

function mymodule_addform_submit($form, &$form_state) {
    if ($file) {
        drupal_set_message(t('New file %name uploaded to %path.', array('%name' => $file->filename, '%path' => $file->filepath)));
    } else {
        drupal_set_message(t('File was not uploaded'));
    }

}

Эта форма не работает. Подскажите пожалуйста в чем проблема. Сторонний модуль на этом же сайте отлично загружает файлы, так что проблема не в настройках php и размере загружаемого файла (8мб, а загружаю картинку).
Заранее благодарен!

Комментарии

Аватар пользователя djet djet 29 ноября 2010 в 14:25

У меня (на локалхосте) загружает файл но пишет
File was not uploaded
НЕМОГУ ПОНЯТЬ ОТКУДА ЭТА ОШИБКА Sad

И я изменил
<?php $replace FILE_EXISTS_RENAME?>
на
<?php $replace FILE_EXISTS_REPLACE?>