Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Нужна помощь по загрузке файлов

Нужна помощь по загрузке файлов


     03.06.2013    php, upload, images, files    Все вопросы » Общие вопросы по PHP    5073

вопрос
Привет, У меня есть код в addnews.php он отвечает за загрузку скриншотов он работает.

Проблема в том что он не выводит ошибки при загрузке к примеру:

Мне нужно выводить сообщение если пользователь пытается загрузить слишком большой скриншот.

Помогите кто знает, вот сам код.


$imags_id=0;
        $idpost = $row['id'];
        while ($imags_id<=5) {
        $imags_id++;
        $allowed_extensions = array ("jpg", "png", "jpeg" );
        if ((isset($_FILES['post_add_'.$imags_id.'']) && $_FILES['post_add_'.$imags_id.'']!='')) {
            $file_prefix = time() + rand( 1, 100 );
            $file_prefix .= "_";
        if( ! is_dir( ROOT_DIR . "/uploads/posts/screenshots/") ) {
            @mkdir( ROOT_DIR . "/uploads/posts/screenshots/");
            @chmod( ROOT_DIR . "/uploads/posts/screenshots/");
            @mkdir( ROOT_DIR . "/uploads/posts/screenshots/");
            @chmod( ROOT_DIR . "/uploads/posts/screenshots/");
        }            
            $config_path_image_upload = ROOT_DIR . "/uploads/posts/screenshots/" . "/";
                    
            $current_image = 'post_add_'.$imags_id.'';
            $image = $_FILES[$current_image]['tmp_name'];
            $image_name = $_FILES[$current_image]['name'];
            $image_size = $_FILES[$current_image]['size'];
            $error_code = $_FILES[$current_image]['error'];
    
            $img_name_arr = explode( ".", $image_name );
            $type = totranslit( end( $img_name_arr ) );
            if( $image_name != "" ) {
                $curr_key = key( $img_name_arr );
                unset( $img_name_arr[$curr_key] );
                $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
            }
            @move_uploaded_file( $image, $config_path_image_upload . $file_prefix . $image_name );
            if( @file_exists( $config_path_image_upload . $file_prefix . $image_name ) ) {
                @chmod( $config_path_image_upload  . $file_prefix . $image_name, 0666 );
                    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                    if( ! $row['count'] ) {
                        $added_time = time() + ($config['date_adjust'] * 60);
                        $inserts = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
                        $db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );
                    } else {
                        $row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                        if( $row['images'] == "" ) $listimages = array ();
                        else $listimages = explode( "|||", $row['images'] );
                        foreach ( $listimages as $dataimages ) {
                            if( $dataimages == FOLDER_PREFIX . "/" . $file_prefix . $image_name ) $error_image = "stop";
                        }
                        if( $error_image != "stop" ) {
                            $listimages[] = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
                            $row['images'] = implode( "|||", $listimages );
                            $db->query( "UPDATE " . PREFIX . "_images set images='{$row['images']}' where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                        }
                    }
              }
            }
            
        }

Ответа пока нет


5 комментариев

FastFud
Юзер

FastFud - 4 июня 2013 16:59 -

Я попробовал поствить после


$current_image = 'post_add_'.$imags_id.'';
            $image = $_FILES[$current_image]['tmp_name'];
            $image_name = $_FILES[$current_image]['name'];
            $image_size = $_FILES[$current_image]['size'];
            $error_code = $_FILES[$current_image]['error'];


это


            if ($error_code !== UPLOAD_ERR_OK) {

                switch ($error_code) {
                    case UPLOAD_ERR_INI_SIZE:
                        $error_code = 'PHP Error: The uploaded file exceeds the upload_max_filesize directive in php.ini'; break;
                    case UPLOAD_ERR_FORM_SIZE:
                        $error_code = 'PHP Error: The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; break;
                    case UPLOAD_ERR_PARTIAL:
                        $error_code = 'PHP Error: The uploaded file was only partially uploaded'; break;
                    case UPLOAD_ERR_NO_FILE:
                        $error_code = 'PHP Error: No file was uploaded'; break;
                    case UPLOAD_ERR_NO_TMP_DIR:
                        $error_code = 'PHP Error: Missing a PHP temporary folder'; break;
                    case UPLOAD_ERR_CANT_WRITE:
                        $error_code = 'PHP Error: Failed to write file to disk'; break;
                    case UPLOAD_ERR_EXTENSION:
                        $error_code = 'PHP Error: File upload stopped by extension'; break;
                    default:
                        $error_code = 'Unknown upload error';  break;
                }


            }
    


не получилось

dj-avtosh
PHP-developer

dj-avtosh - 4 июня 2013 18:16 -

В аську запостите.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

FastFud
Юзер

FastFud - 4 июня 2013 18:29 -

Вы у меня в skype.
ICQ не пользуюсь

FastFud
Юзер

FastFud - 4 июня 2013 18:47 -

В skype зайдите.

FastFud
Юзер

FastFud - 5 июня 2013 21:17 -

Я еще так попробовал, но тоже не получилось.


if (!in_array($_FILES['current_image']['type'], $allowed_extensions))
die('Запрещённый тип файла.');
if ($_FILES['current_image']['size'] > $image_size)
die('Слишком большой размер файла.');

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх