Начало Новини Маркет Проекти Форум ИТ Работа Уроци Скриптове WiFi точки Още Вход


Нова тема
Въпрос относно оразмеряване на картинки?
Тази тема е погледната 570 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 22.06.2011 16:04
tonsan
Калфа

Мнения: (24)

Здравейте.Направих си форма за качване на картинки,след това направих само опит да ги оразмеря с php  преди да се качат, но нещо явно не можах да схвана логиката.Това ми е кода,ако можете да ми помогнете къде са ми пропуските ще съм благодарен

if(isset($_POST['upload'])) {
        if(($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/gif")
            || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/png")){   
           
            if($_FILES["file"]["type"] == "image/jpeg") $format=".jpeg";
            if($_FILES["file"]["type"] == "image/gif") $format=".gif";
            if($_FILES["file"]["type"] == "image/jpg") $format=".jpg";
            if($_FILES["file"]["type"] == "image/png") $format=".png";
            $time = time();
            $newname="$time$format";
           
                        $percent = 0.5;
                        $size = getimagesize("/imgs/$newname"); $width=$size[0]; $height=$size[1];
                        $new_width = 100;
                        $new_height = 100;

                       
                        $thumb = imagecreatetruecolor($new_width, $new_height);
                        $source = imagecreatefromjpeg("imgs/$newname");

                       
                        imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
           
            $path= move_uploaded_file($_FILES["file"]["tmp_name"],"imgs/$newname");
            $f=mysql_query("INSERT INTO `upload` (`name`) VALUES ('$newname')") or die(mysql_error());
            if($path && $f) {
                echo "Файлът е качен успешно!";
       

            }else{
                echo "Грешка при качването на файла!";
            }
        }
        else{printf( "Невалиден формат");}
       
}
   

   
       
        $all_imgs="";
        $query=mysql_query("SELECT * from upload") or die(mysql_error());
        while($row=mysql_fetch_array($query)){
            $img_name=$row['name'];
            $img='<img src="HTTP://localhost/imgs/'.$img_name.'" /> ';
           
            $all_imgs.=$img;
        }


 
---------------------------
Потребител в Mytech.bg от: 28.04.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 24.06.2011 00:36
blooddrainer
Ронин

Модератор

Мнения: (406)

 Този отговор е маркиран като удовлетворителен!

Здравей!

Ето примерен код, който е всъщност твоя, но с някои малки поправки. Също така в този вариант се поддържа пропорционалност на изображението.

 CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
if ( isset( $_POST['upload'] ) )
{
    switch ( $_FILES['file']['type'] )
    {
        case 'image/jpeg':
        case 'image/jpg':
            $format = ".jpg";
            $source = imagecreatefromjpeg( $_FILES['file']['tmp_name'] );
        break;
        case 'image/gif':
            $format = ".gif";
            $source = imagecreatefromgif( $_FILES['file']['tmp_name'] );
        break;
        case 'image/png':
            $format = ".png";
            $source = imagecreatefrompng( $_FILES['file']['tmp_name'] );
        break;
        default:
            echo "Невалиден формат";
            exit;
        break;
    }

    $time = time();
    $newname = "$time$format";

    $size = getimagesize( $_FILES['file']['tmp_name'] );
    $width = $size[0];
    $height = $size[1];
    $new_width = 100;
    $new_height = 100;

    if ( $width > $height ) $new_height = $new_width / ( $width / $height );
    else if ( $height > $width ) $new_width = $new_height * ( $width / $height );

    $thumb = imagecreatetruecolor( $new_width, $new_height );

    imagecopyresized( $thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width,
        $height );
    imagedestroy( $source );
    imagejpeg( $thumb, $_FILES['file']['tmp_name'], 100 );
    imagedestroy( $thumb );

    $path = move_uploaded_file( $_FILES["file"]["tmp_name"], "imgs/$newname" );
    $f=mysql_query("INSERT INTO `upload` (`name`) VALUES ('$newname')") or die(mysql_error());

    if ( $path && $f ) echo "Файлът е качен успешно!";
    else  echo "Грешка при качването на файла!";
}

Поздрави!


 
---------------------------
Потребител в Mytech.bg от: 11.05.09

http://www.webxmedia.eu
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 27.06.2011 08:15
tonsan
Калфа

Мнения: (24)

Благодаря ;)


 
---------------------------
Потребител в Mytech.bg от: 28.04.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
 2 посетители са активни в този форум (0 потребители и 2 гости)  
Активни потребители: ---
   




myTech.bg © 2004 - 2011 | Контакти | За реклама