tworzenie miniatury

Odpowiedz Nowy wątek
dizell
2007-06-23 23:18
dizell
0

Witam, chcę żeby można było wgrywać plik graficzny na serwer. Nie chcę ustawiać max. rozmiaru na wgrywany plik. Jeżeli dany plik będzie zbyt wielki, program automatycznie zmniejszy go do rozmiarów jakie mnie interesują. Jeżeli plik będzie mniejszy od standardu , program nie będzie go zmieniać. Mam do tego taki oto kod.

Funkcja tworzenia odpowiedniego obrazu (skorzystałem z kodu na tworzenie minitury):

function miniaturka1($file,$img,$imgdest) {
    if(file_exists($img)){
        list($width, $height) = getimagesize($img);

                if ($width>$height)
                {
                      if ($width>=700) {
                       $x = '700';
                       $y = ($x / $width) * $height;
                         }
                      else {
                       $x= $width;
                       $y= $height;
                           }

                }else{
                      if ($height>=600) {
                       $y = '600';
                       $x = ($y / $height) * $width;
                                        }
                      else {
                       $x= $width;
                       $y= $height;
                           }

                }

        if(exif_imagetype($img)==2){
            $img1 = imagecreatefromjpeg($img);
            $imgdest1 = imagecreatetruecolor($x, $y);
            imagecopyresampled($imgdest1, $img1, 0, 0, 0, 0, $x, $y, $width, $height);
            imagejpeg($imgdest1,$imgdest);
        }
        if(exif_imagetype($img)==1){
            $img1 = imagecreatefromgif($img);
            $imgdest1 = imagecreate($x, $y);
            imagecopyResampled($imgdest1, $img1, 0, 0, 0, 0, $x, $y, $width, $height);
            imagejpeg($imgdest1,$imgdest);
        }

        imagedestroy($img1);
        imagedestroy($imgdest1);
    }
}

kod:

$uploadfile = array('');
            $files = array('');

            $licznik = 0;
            for($a=1; $a<=6; $a++){
                $plik = "photo$a";

                if($_FILES[$plik]['size'] != 0){
                    $nazwa_pliku = $_FILES[$plik]['name'];

                    if($_FILES[$plik]['type'] == "image/jpg" || $_FILES[$plik]['type'] == "image/jpeg" || $_FILES[$plik]['type'] == "image/pjpeg" || $_FILES[$plik]['type'] == "image/gif"){
                        $ext = ".jpg";
                    }
                    else{
                        $errortext[$i]='Dozwolone formaty pliku to: *.jpg.<BR>'; $i++; $error=true;
                    }

                    $pre = 'obraz';

                    $rand = rand(100000, 999999);
                    $file = "$pre.$rand$ext";

                    $folder = "zdjecia/";

                    while(file_exists($name)){
                        $pre = 'obraz';

                        $rand = rand(100000, 999999);
                        $file = "$pre.$rand$ext";

                        $folder = "zdjecia/";
                    }

                    $files[$a] = $file;

                    if(!file_exists($folder)){ $errortext[$i]='Wystąpił błąd. Spróbuj dodać plik ponownie.<BR>'; $i++; $error=true;}

                    $uploaddir = getcwd()."/$folder";
                    $uploadfile[$a] = "$uploaddir$file";
                    $licznik++;
                }
            }
        }
    }
    else{ $errortext[$i]='Wystąpił błąd. Nie wykonano operacji.<BR>'; $i++; $error=true;}

    if($error==false){
        for($a=1; $a<=6; $a++){

            $plik = "photo$a";

            if($_FILES[$plik]['size']!= 0){
                                    $folder = "zdjecia/";
                ## miniaturka ##

                $file = $files[$a];
                $img = $_FILES[$plik]['tmp_name'];

                $imgdest = "$folder$file";
                miniaturka1($file,$img,$imgdest);

        }  }  }

formularz:

                   echo'<TR><TD>';

            for($a=1;$a<=6;$a++){

                       echo'<INPUT type=file name="photo'.$a.'" class=cell2><BR>';

                          }

                       echo'</TD></TR>';

Oceńcie według siebie, czy można by to jakoś inaczej zrobić, łatwiej czy spraniej

Pozostało 580 znaków

2007-06-24 14:27

Rejestracja: 16 lat temu

Ostatnio: 1 rok temu

0

Ja uzywam czegos takiego:

http://pastebin.4programmers.net/2672

Przy czym miniaturki nie generuje przy uploadowaniu tylko do usera wysylam w src obrazka cos takiego: "skrypt.php?url=obrazek.jpg".


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0