Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmiana rozdzielczości obrazka
Forum PHP.pl > Forum > Przedszkole
greg.paw.90
Witam,
mam pytanie w jaki sposób zmienić rozdzielczość wgrywanego obrazka.

Tak wgrywam:

  1. <?php
  2. if(isset($_POST['wyslij'])){
  3.       if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  4.           {
  5.             $plik = '../galeria/img_' . $_FILES['userfile']['name'];
  6.                 if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $plik ) )
  7.                 {
  8.               echo 'Plik został pomyslnie uploadowany! <br />';
  9.               echo 'link do niego: galeria/img_'.$_FILES['userfile']['name'];
  10.                 }
  11.                 else
  12.                 {
  13.               echo 'Upload pliku nie powiodl sie!';
  14.                 }
  15.           }
  16.       else
  17.       {
  18.     echo 'Wystapil blad podczas wysylania pliku na serwer!';
  19.    
  20.                                        print_r($_FILES);
  21.       }
  22. }
  23. ?>
greg.paw.90
ok poczytam, i spróbuje zrobić... mam nadzieje, że w razie czego mogę liczyć na Wasze podpowiedzi.

witam ponownie,

chcę zrobić upload plików z automatyczną generacją miniaturki.

Napotkałem jednak na problem. Mianowicie miniaturka mi się generuje, ale źle tzn. min tworzy się poprzez kadrowanie obrazka, a ja bym chciał zmniejszyć obrazek, który jest wgrywany a nie ucinać go do wielkości miniaturki.

Mógłby ktoś pomóc ?

  1. <?php
  2. function galeria(){
  3.    echo '<form enctype="multipart/form-data" action="test.php?galeria=add" method="POST">
  4.            <input type="hidden" name="MAX_FILE_SIZE" value="900000" />
  5.             Plik do wyslania: <input name="userfile" type="file" />
  6.             <input type="submit" name="wyslij" value="Wyślij" />
  7.        </form><hr>';
  8.        $foty = '../galeria';
  9.        $i = 1;
  10.   if ($katalog = opendir($foty)) {
  11.           while ($plik = readdir($katalog)) {
  12.           $katalog2 = opendir($foty);
  13.                       if (ereg (".jpg$" , $plik)){
  14.                   echo '<img height="10%" width="10%" src="../galeria/min/' . $plik . '"></a>';
  15.                   echo ' <a class="del" href="test.php?galeria=usun&id='.$plik.'">usun plik</a><br><br>';
  16.                       if(($i % 4)==0){
  17.                       }
  18.                       $i++;
  19.                       }
  20.           }
  21.   }
  22. }
  23.  
  24. function galeria_add(){
  25.        if(isset($_POST['wyslij'])){
  26.        $typ = $_FILES['userfile']['type'];
  27.        if ($typ == "image/jpeg"){
  28.        $losowa_nazwa = md5(microtime());
  29.       if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  30.           {
  31.             $plik = '../galeria/img_' . $losowa_nazwa.'.jpg';
  32.             if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $plik ) )
  33.                 {
  34.               echo 'Plik został pomyslnie uploadowany! <br />';
  35.               echo 'link do niego: galeria/img_'.$losowa_nazwa;
  36.                  $src = imagecreatefromjpeg($plik);
  37.                $size = @getimagesize($file);
  38.                $width = $size[0];    
  39.                $height = $size[1];
  40.                $max_width = '120';
  41.                $max_height= '95';
  42.                  $color = imagecreatetruecolor($max_width, $max_height);
  43.                imagecopyresampled($color, $src, 0, 0, 0, 0, $max_width, $max_height, $max_width, $max_height);
  44.                  imagejpeg($color, "../galeria/min/img_".$losowa_nazwa.".jpg", 100);
  45.                 }
  46.                 else
  47.                 {
  48.               echo 'Upload pliku nie powiodl sie!';
  49.                 }
  50.           }
  51.       else
  52.       {
  53.     echo 'Wystapil blad podczas wysylania pliku na serwer!';
  54.    
  55.                                        print_r($_FILES);
  56.       }
  57. }
  58. }
  59. else{
  60. echo 'Upload tylko dla plików jpg';
  61. }
  62. }
  63.  
  64. function galeria_usun(){
  65.    $id=$_GET['id'];
  66.    $usun='../galeria/'.$id;
  67.    unlink($usun);
  68.    echo "Pomyślnie usunąłem obraz:".$id;
  69. }
  70. ?>
erix
  1. <?php
  2. imagecopyresampled($color, $src, 0, 0, 0, 0, $max_width, $max_height, $max_width, $max_height);
  3. ?>

Musisz podać też wymiary źródłowe. [;
greg.paw.90
  1. <?php
  2. imagecopyresampled($color, $src, 0, 0, 0, 0, $max_width, $max_height, $width, $height);
  3. ?>


Jak zrobię tak to czarny obrazek mi się generuje
erix
Nie dziwię się, skoro width/height wynoszą zero. tongue.gif

Sprawdź parę linijek wyżej, czy Ci się zmienne nie pomyliły.
greg.paw.90
rzeczywiście, dzięki za pomoc...

Mam jeszcze jedno pytanie... czy można zrobić tak aby po kliknięciu w przeglądaj były dostępne tylko pliku jpg/jpeg. ? (tak jak to się da np. w visual c++)

próbowałem tak ale nie działa: <input type="hidden" name="FILE_MIME" value="image/jpg" /> ?
Spawnm
po prostu sprawdzaj mime w php , nie jpg -> error
oczywiście nie zapomnij potem o reszcie filtrów smile.gif
erix
Da się na pewno do input file. Atrybut accept.
greg.paw.90
zrobiłem tak

  1. <input name="userfile" type="file" accept="image/jpeg,image/jpg" />



i nie działa... trudno zrobię tylko po przez sprawdzanie w php

  1. <?php
  2. if ($_FILES["userfile"]["type"] == "image/pjpeg" || $_FILES["userfile"]["type"] == "image/jpeg")
  3.  {
  4. ...
  5. }
  6. ?>
erix
  1. sprawdzanie po stronie klienta może być TYLKO DODATKIEM, po stronie serwera musisz
  2. przeglądarka nie zawsze musi dostarczać prawidłowe MIME
  3. IE nie obsługuje po prostu tagu accept
Spawnm
Cytat(erix @ 10.07.2009, 19:03:07 ) *
Da się na pewno do input file. Atrybut accept.

tylko co to za zabezpieczenie , zrobi ktoś na lokalu własny form bez blokady.
erix
Aleś przeczytał mojego posta ;p
Fifi209
Cytat(erix @ 10.07.2009, 18:28:53 ) *
  1. sprawdzanie po stronie klienta może być TYLKO DODATKIEM, po stronie serwera musisz
  2. przeglądarka nie zawsze musi dostarczać prawidłowe MIME
  3. IE nie obsługuje po prostu tagu accept



Cytat(Spawnm @ 10.07.2009, 18:29:50 ) *
tylko co to za zabezpieczenie , zrobi ktoś na lokalu własny form bez blokady.



Cytat(erix @ 10.07.2009, 22:33:16 ) *
Aleś przeczytał mojego posta ;p


Spawnm i wszystko jasne? smile.gif Czasami wzrokiem ogarniasz tekst i nie zastanawiasz się nad treścią. haha.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.