Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Galeria zdjęć
-Gość_Janek-
post 24.04.2005, 13:30:42
Post #1





Goście







Nie wiem czy uda mi sie wytłumaczyć moj problem bo to dosc skomplikowane jak sie nie zobaczy calego skryptu, ale sprobuje:

Wiec w katalogu galerii są katalogi thumbs i big ktore zawieraja odpowiednio miniaturki i powiększenia. Kazdy plik w kazdym z katalogów ma jako nazwe numerek od 1 wzwyż - numerki w obu katalogach odpowiadają sobie czyli w katalogu miniaturek 1.jpg odpowiada 1.jpg z katalogu big. Moj skrypt polega na przesylaniu zdjęć z komputera na serwer, po przeslaniu zdjecia nazwa tego co sie wyslalo zmienia sie na kolejny numerek, czyli naprzyklad jak ostatnie zdjecie bylo 22.jpg, to te co sie przyslalo ma 23.jpg itd.
Z wysylaniem duzych zdjęć nie ma problemu, natomiast sprawa komplikuje sie z miniaturkami - najpierw na stronie do formularza wpisuje sie zdjecie, ktore chce sie przeslac, a nastepnie wybiera się przyciskami radio numer duzego zdjecia do ktorego chce sie dolaczyc miniaturke, na koncu skrypt sprawdza czy duze zdjecie ktore sie wyslalo posiada juz miniaturke, jesli posiada - wyswietla blad. Narazie wszystko jest ok, niby mogloby tak zostac, ale po co wyswietlac na formularzu wszystkie numery duzych zdjec, skoro mozna by tylko tych ktore nie maja miniatur?
No i wlasnie nie wiem jak to zrobic, zeby sprawdzic oba katalogi, i jesli ktorys ze zdjec w katalogu big nie ma swojego odpowiednika w miniaturkach, to wyswietlic go na formularzu. Probowalem robić cos w tym stylu:

  1. <?php
  2.  for($i=0; $i<count(images[$i]); $i++){
  3. if($images[$i] != $images_thumbs[$i]){
  4. $do_wyswietlenia[] = $images[$i];
  5. }
  6.  }
  7.  
  8. ?>


Ale to jest troche bezsensu bo przeciez jesli naprzyklad brakuje miniaturki 6.jpg to wtedy te wyrazenie if zawsze bedzie mialo TRUE i do tablicy dopisza sie wszystkie zdjecia...
Nie wiem czy zrozumiecie w ogole o co mi chodzi, ale mam nadzieje ze tak biggrin.gif biggrin.gif biggrin.gif

Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kuziu
post 24.04.2005, 16:53:48
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Jeśli masz zainstalowaną bibliotekę GD to nie lepiej by było zostawić robienie miniaturek php'owi ?
Wrzucałbyś tylko duże zdjęcie a php robił by z tego miniaturę i ją zapisywał.

Po 2 jeśli masz Bazę danych to najlepiej by było zrobić tabelę do galerii w której trzymałbyś dane obrazków ... wtedy przeszukanie czy też sprawdzenie które zdjęcie istnieje .. kto je dodał ... kiedy itp. było by bardzo proste ...

Jak zrobić miniaturki za pomocą biblioteki GD jest opisane Tutaj

Ten post edytował Kuziu 24.04.2005, 16:55:09


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
-Gość_Janek-
post 24.04.2005, 18:09:03
Post #3





Goście







Na serwerze na którym mam strone nie ma bazy danych, wiec mozna tylko operowac na plikach, a z biblioteka pokombinuje. THX
Go to the top of the page
+Quote Post
Janek111
post 25.04.2005, 17:32:15
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

Ostrzeżenie: (0%)
-----


Tak jak napisales uzylem biblioteki GD i wszystko dziala, tylko ze jest taki dziwny problem, ze po utworzeniu miniaturki, przegladarka wyswietla ta miniaturke co utworzylem. Ale czesto pojawiaja sie bledy, ze wyswietla sie zupelnie inne zdjecie, i zupelnie nie wiem o co chodzi...

  1. <?php
  2.  
  3. if(!isset($co)){
  4.  
  5. // tutaj funkcja przesylajaca plik itd.
  6.  
  7. if(!($dp = opendir(&#092;"../zdjecia/$dzial/big\"))){
  8.           die(&#092;"<p>BŁĄD!</p>\");
  9.           }
  10.   while($file = readdir($dp)) {
  11.   $ciag = &#092;".jpg$|.png$|.gif$\";
  12.   $rozszerzenie = ereg($ciag, $file);
  13.           if($file != '.' && $file != '..' && $file != 'Thumbs.db' && $rozszerzenie) {
  14.         $images[]= (int) $file;
  15.         }
  16.      }
  17.         closedir($dp);
  18.  
  19. if(!file_exists(&#092;"../zdjecia/$dzial/big/1.jpg\")){
  20.         $pliczek = 1;
  21.         }
  22.         else{
  23.         $pliczek = count($images);
  24.         }
  25.  rename($lokalizacja, $DOCUMENT_ROOT.&#092;"strona1/zdjecia/$dzial/big/\".$pliczek.\".jpg\");
  26.   echo &#092;"Plik \". $_FILES['plikuzytkownika']['name'].\" został pomy&para;lnie wysłany<br><br>\";
  27.   echo &#092;"<p>OTO ON: <br><br><br>\";
  28.  resizeImage(&#092;"../zdjecia/$dzial/big/\".$pliczek.'.jpg', 150, 150, \"../zdjecia/$dzial/thumbs/\".$pliczek.'.jpg');
  29.  echo &#092;"<br><a href=\"$PHP_SELF?dzial=$dzial&co=usun&pliczek=$pliczek\">USUŃ TO ZDJCIE</a></p>\";
  30.  echo &#092;"<p><a href=\"wyslij_typ.php?dzial=$dzial&wybierz=$wybierz&typ=$typ&wybierz_typ=$wybierz_typ\">POWRÓT</a></p>\";
  31.  }else{
  32.  if(isset($co)){
  33.  unlink($DOCUMENT_ROOT.&#092;"strona1/zdjecia/$dzial/big/\".$pliczek.\".jpg\");
  34.   unlink($DOCUMENT_ROOT.&#092;"strona1/zdjecia/$dzial/thumbs/\".$pliczek.\".jpg\");
  35.     echo &#092;"<p><a href=\"wyslij_typ.php?dzial=$dzial\">POWRÓT</a></p>\";
  36.     }
  37. }
  38.  
  39. ?>




A może inaczej, bo zauwazylem ze sporo błedow jest z tym wyswietlaniem zdjecia w przegladarce.
Czy mogłby mi ktoś powiedziec, jak pozbyc sie w tej funkcji wyswietlania w przegladarce miniaturki zaraz po utworzeniu?

Ten post edytował Janek111 25.04.2005, 21:19:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:35