Заливка файлов. Функция возвращает не то, что я хочу

-faqer-

Я только учусь
Заливка файлов. Функция возвращает не то, что я хочу

Написал на основе details функцию для заливания файлов на сервер, функция отвечает моим требованиям
Она записывает в определенную директорию файл с определенным мной префиксом, номером и расширением, соответсвующим исходному файлу.
А потом возвращает либо ошибку, либо расширение для внесения в базу
Но есть одна проблема
Если просто просабмитить форму, не выбрав файл, функция не выдает ошибок, а возвращает расширение .Пусто
Понимаю, что код не самый компактный, но все же помогите сделать так, чтоб возвращалась ошибка, а не это .Пусто
PHP:
function fun_upload ($content = 2, $max_image_width = 1024, $max_image_height = 1024, $max_file_size = 5242880, $uploaddir = '/virt/homes/', $field = "userfile", $prefix = '', $name = '') {
    $flag = 0;
    $message = array ();
    $ext = '';
    if ($content == 1) {
        $valid_types =  array("gif","jpg", "png", "jpeg");
        if (isset($_FILES[$field])) {
            if (is_uploaded_file($_FILES[$field]['tmp_name'])) {
                $filename = $_FILES[$field]['tmp_name'];
                $ext    = eregi_replace ("[^a-z]", "", strtolower (substr ($_FILES[$field]['name'], 1 + strrpos ($_FILES[$field]['name'], "."))));
                if (filesize($filename) > $max_file_size) {
                    $flag = 1;
                    $max_file_size = $max_file_size/1024;
                    $message[] = "Файл превышает допустимый размер ".$max_file_size." kb.";
                }
                elseif (!in_array($ext, $valid_types)) {
                    $flag = 1;
                    $message[] = "Недопустимое разрешение файла.";
                }
                else {
                    $size = GetImageSize($filename);
                    if (($size) && ($size[0] <= $max_image_width) && ($size[1] <= $max_image_height)) {
                        if (move_uploaded_file($_FILES[$field]['tmp_name'], $uploaddir.$prefix.$name.".".$ext)) {
                            chmod ($uploaddir.$prefix.$name.".".$ext, 0644);
                            $flag = 0;
                        }
                        else {
                            $flag = 1;
                            $message[] = "Невозможно записать файл.";
                        }
                    }
                    else {
                        $flag = 1;
                        $message[] = "Изображение превышает допустимые размеры: ".$max_image_width."x".$max_image_height.".";
                    }
                }
            }
            else {
                $flag = 1;
                $message = "Пустой файл";
            }
        }
    }
    if ($content == 2) {
        $valid_types =  array("zip","rar", "exe");
        if (isset($_FILES[$field])) {
            if (is_uploaded_file($_FILES[$field]['tmp_name'])) {
                $filename = $_FILES[$field]['tmp_name'];
                $ext    = eregi_replace ("[^a-z]", "", strtolower (substr ($_FILES[$field]['name'], 1 + strrpos ($_FILES[$field]['name'], "."))));
                if (filesize($filename) > $max_file_size*1024*1024) {
                    $max_file_size = $max_file_size/1024;
                    $message[] = "Файл превышает допустимый размер ".$max_file_size." kb.";
                }
                elseif (!in_array($ext, $valid_types)) {
                    $flag = 1;
                    $message[] = "Недопустимое разрешение файла.";
                }
                else {
                    if (move_uploaded_file($_FILES[$field]['tmp_name'], $uploaddir.$prefix.$name.".".$ext)) {
                        chmod ($uploaddir.$prefix.$name.".".$ext, 0644);
                        $flag = 0;
                    }
                    else {
                        $flag = 1;
                        $message[] = "Невозможно записать файл.";
                    }
                }
            }
            else {
                $flag = 1;
                $message = 'Пустой файл';
            }
        }

    }
    if ($flag) return $message;
    else return $ext;
}
 

-faqer-

Я только учусь
И читал эту ссылку и отладить пытался
Но найти это .пусто не могу

-~{}~ 11.11.04 00:43:

ТОчнее понимаю, что скрипт считает, что файл закачан., но не понимаю почему:((
 

SiMM

Новичок
Для отладки в данном случае не помешает так же [m]features.file-upload.errors[/m] ([m]features.file-upload[/m])
+ UPLOAD несуществующего файла
PS: вообще начинать надо с минимального работающего скрипта, а не с той кучи, которую ты привёл и которую чтобы запустить ещё извернуться надо - помощь нужна тебе, а не кому-то ещё.
 
Сверху