Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт загрузки изобр. НО очень долго загружает...
 
 автор: welbox   (18.02.2009 в 22:57)   письмо автору
 
 

Всем привет. Надеюсь, найдем все вместе решение проблемы =))

Написал скрипт загрузки изображения - да и еще чтобы уменьшал до определенного размера, вот только почему-то очень долго это происходит.

Допустим, размер изображения 1МБ, скорость интернета быстрая, очень.
Сейчас протестировал:
Фото: 504КБ
Загружал: 1мин. 15 сек.
Скорость интернета ОТЛИЧНАЯ, В плане скачиваю файлы 100 мб, за минут 20.
То есть, получается либо мой хостинг тормозит, либо не могу понять в чем дело.

А хостинг www.sweb.ru

Но посмотрите мой код пожалуйста, что-то может не то?!

session_start(); //инициализирум механизм сесссий
include ("db_connect.php");

    if(isset($_SESSION['login'])) { $login = $_SESSION['login']; }
    if (isset($_POST['submit'])){ $submit = $_POST['submit']; }
    if (isset($_POST{'id'})) { $id = $_POST{'id'}; }
    
    if($_POST['session'] != session_id())
    { exit ("Ошибка!"); }
    
    else
    {
        if(isset($_POST['submit']))
        {
            $res_file = mysql_query("SELECT author FROM photo WHERE author='".$id."'");
            if(mysql_num_rows($res_file) < 40)
            {    
                $userfile = $_FILES['image']['tmp_name'];
                $userfile_size = $_FILES['image']['size'];

                    if(!empty($userfile))
                    {
                        if ($userfile_size < 1024*4*1024) 
                        {
                            $userfile_name = $_FILES['image']['name'];
                            $userfile_name_arr = explode(".",$userfile_name);
                            $type         = end($userfile_name_arr);
                            
                            $extentions = array("jpg", "jpe", "jpeg", "gif", "png");
                            if ((in_array($type, $extentions) or in_array(strtolower($type), $extentions)) and $userfile)
                            {
                                if (isset($_POST['id'])){ $id = $_POST['id']; }
                                if (isset($_POST['title'])){ $title = $_POST['title']; }
                                
                                $date = date("Y-m-d");
                                $title = htmlspecialchars(stripslashes($title));
                                
                                $uploaddir = '/foto/';
                                $name = basename("www.site.ru_".date("YmdHis",time())."_"."photo".$type);            
                                $uploadfile = $uploaddir . $name;
                                
                                $w = 650;
                                $h = 488;
                                $q = 100;
                                
                                $size_img = getimagesize($userfile);
                                if($size_img[0] < $w)
                                {
                                    if (move_uploaded_file($userfile, $uploadfile))
                                    {
                                        $result_com = mysql_query("INSERT INTO photo(title,author,date,photo) 
                                        VALUES('".$title."','".$id."','".$date."','".$name."')",$db);
                                        if ($result_com == TRUE)
                                        {
                                            $msg = "Фото успешно загружено!";
                                            header("Location: http://site.ru/msg.php?msg=$msg");
                                        }
                                        else { echo 123; }
                                    }
                                }

                                else
                                {
                                    $ratio = $w/$h;
                                    $src_ratio = $size_img[0]/$size_img[1];
                                    
                                    if($ratio < $src_ratio) $h = $w/$src_ratio;
                                    else $w = $h * $src_ratio;
                                    
                                    $dest_img = imagecreatetruecolor($w, $h);
                                    if ($type == "jpg" || "jpe" || "jpeg") { $src_img = imagecreatefromjpeg($userfile); }
                                    else if ($type == "gif") { $src_img = imagecreatefromgif($userfile); }
                                    else if ($type == "png") { $src_img = imagecreatefrompng($userfile); }
        
                                    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);

                                    if ($type == "jpg" || "jpe" || "jpeg") { imagejpeg($dest_img, $uploadfile, $q); }
                                    else if ($type == "gif") { imagegif($dest_img, $uploadfile, $q); }
                                    else if ($type == "png") { imagepng($dest_img, $uploadfile, $q); }
                                    $return = 1;
                                    
                                    if ($return == 1)
                                    {
                                        $result_com = mysql_query("INSERT INTO photo(title,author,date,photo) 
                                        VALUES('".$title."','".$id."','".$date."','".$name."')",$db);
                                        if ($result_com == TRUE)
                                        {
                                            $msg = "Фото успешно загружено!";
                                            header("Location: http://site.ru/msg.php?msg=$msg");
                                        }
                                        else { echo 123; }    
                                    }
                                    else { echo 7345345; }

                                }                    
                            }
                            
                            else
                            {
                                $msg = "Загрузка ИНЫХ файлов, ЗАПРЕЩЕНА!<br /> Загружайте файлы с расширением .jpg, gif, png"; 
                                header("Location: http://site.ru/msg2.php?msg=$msg");
                            }
                        }
                        
                        else
                        {
                            $msg = "Размер загружаемого файла превышает 4МБ!"; 
                            header("Location: http://site.ru/msg2.php?msg=$msg");
                        }
                    
                    }
            
                    else 
                    {
                        $msg = "Вы не выбрали файл для загрузки!"; 
                        header("Location: http://site.ru/msg2.php?msg=$msg");
                    }
            }
            
            else
            {
                $msg = "Ваш лимит загрузки превышен!<br />Всего доступно 40 изображений!"; 
                header("Location: http://site.ru/msg2.php?msg=$msg");
            }
            }
            
            else 
            {
                $msg = "Извините, но произошла ошибка!"; 
                header("Location: http://site.ru/msg2.php?msg=$msg");
            }
    }

  Ответить  
 
 автор: elenaki   (19.02.2009 в 12:37)   письмо автору
 
   для: welbox   (18.02.2009 в 22:57)
 

1Mb - это очень много для GD
да еще и 100% качества...

  Ответить  
 
 автор: welbox   (21.02.2009 в 16:18)   письмо автору
 
   для: elenaki   (19.02.2009 в 12:37)
 

а что можешь посоветовать? по улучшению =))

  Ответить  
 
 автор: elenaki   (21.02.2009 в 17:39)   письмо автору
 
   для: welbox   (21.02.2009 в 16:18)
 

уменьшить размер фотки в Фотошопе.

  Ответить  
 
 автор: welbox   (22.02.2009 в 21:16)   письмо автору
 
   для: elenaki   (21.02.2009 в 17:39)
 

дело в том, что я этот скрипт написал, для того, чтобы каждый зарегистрированный пользователь мог загружать фото. То есть создавать фотоальбом, и будет НЕ ОЧЕНЬ если говорить им, сначала уменьшете в фотошопе =)))

А реально, можешь помочь?!

  Ответить  
 
 автор: cjremix   (23.02.2009 в 01:01)   письмо автору
 
   для: welbox   (22.02.2009 в 21:16)
 

Реально, можешь лишь ограничить размер закачиваемого файла. 1Мб - нормальный размер, если ты ресайз не используешь. Но ты юзаешь :)
Посему, ограничь размер файла до поменьше и будет счастье. Ну или сервак помощнее под это дело возьми :)
Удачи!

  Ответить  
 
 автор: welbox   (24.02.2009 в 22:44)   письмо автору
 
   для: cjremix   (23.02.2009 в 01:01)
 

можешь посоветовать нормальный сервер? так как скоро мне надо платить за хостинг, ищю другой, нормальны. если можно, дай ссылки пожалуйста

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования