Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload grafiki
Forum PHP.pl > Forum > Przedszkole
kamil_lk
Witam. Szukam skryptu ktory po wybraniu odpowiedniej grafiki z dysku wysłałby ją na serwer a następnie wyświetlił. Coś w sensie 'Dodaj zdjęcie..'
ShadowD
Plik php:
  1. <?php
  2.  
  3. if(isset($_FILES['avatar'])) 
  4. {
  5. //ustalasz rozszerzenia jaka dopuszczasz
  6. if($_FILES['avatar']['type']=='image/x-png'||$_FILES['avatar']['type']=='image/png'||$_FILES['avatar']['type']=='image/jpeg'||$_FILES['avatar']['type']=='image/gif'||$_FILES['avatar']['type']=='image/bmp'||$_FILES['avatar']['type']=='image/pjpeg')
  7. {
  8. if($_FILES['avatar']['error']==2) $rejestracjablad.="Plik przekracza dopuszczalny rozmiar.<br>";
  9. $rozmiar = getimagesize($_FILES['avatar']['tmp_name']);
  10. //ustalasz max i min wielkosc jaka dopuszczasz
  11. if($rozmiar[0]<100 || $rozmiar[0]>200 || $rozmiar[1]<100 || $rozmiar[1]>200) $rejestracjablad.="Nieprawidłowe rozmiary avataru.<br>";
  12. }
  13. else $rejestracjablad.="Złe rozszerzenie pliku.<br>";
  14. }
  15. else $rejestracjablad.="Nie wysłano avataru.<br>";
  16.  
  17.  
  18. if(isset($rejestracjablad)) { $dolacz=blad; $blad=6; $bladopis=$rejestracjablad; }
  19. else {
  20.  
  21. move_uploaded_file($_FILES[avatar][tmp_name], "png/avatar/obr1.gif");
  22. }
  23. ?>

Formularz:
  1. <form action="index.php" method="POST" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
  3.  
  4. <input type="file" id="poletext2" name="avatar">
  5.  
  6. <input type="submit" value="Rejestracja" />
  7. </form>


A wyświetlasz po prostu przez img z ścieszką "png/avatar/obr1.gif", przepraszam za ten śmietnik w kodzie kopiowałem go ze swojej strony jak chcesz to pousuwasz sobie co tam niepotrzebne...
kamil_lk
Wyskakuje
  1. <?php
  2. Parse error: syntax error, unexpected $end in /var/www/sites/yoyo.pl/l/u/lubycza/dodaj.php on line 32
  3. ?>
ShadowD
Zmodyfikowałem lekko kod teraz spróbuj, jak coś jeszcze nie będzie działało to pisz.

Ps do tego skryptu musisz otworzyć katalog "png" a w nim "avatar" i da mu prawa do zapisu...
Ps2 Błędów nie musisz dawać w ?> i <?php
kamil_lk
noo już wysyła tylko nie wyświetla się obrazek..
ShadowD
Przede wszystkim trzeba dobrze po nazywać pliki, stworzyć katalogi i nadać odpowiednie prawa plikom...

Szczerze to zakładałem, że znasz postawy i dasz sobie rade z tym kodem... Zaraz spróbuje napisać całość...
kamil_lk
Chodzi mi o to aby można było dodać kilka obrazków.. a mi dodaje tylko jeden.. jak to zmienć?
ShadowD
Omg, było tak od razu, one mają się zapisywać tam i wyświetlać na jakiejś innej stronie czy nie muszą się wyświetlać??
kamil_lk
dokładnie to chodzi mi o to żeby gość sobie dodał obrazek i żeby on się wyświetlił.. no i powiedzmy żeby na jednej stronie się wyświetlało max 30 obrazków, a jak już będzie 30 to żeby następne zapisywały się na nowej..
ShadowD
Ej, nie mam zamiaru pisać Ci skryptu z stronicowaniem, napisze tyle ile umiem...
kamil_lk
ok.. wystarczy jak byś napisał samo dodawnie obrazków.. winksmiley.jpg
ShadowD
index.php:
  1. <?php
  2. <form action="zapisz.php" method="POST" enctype="multipart/form-data">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
  4.  
  5. Podaj link: <input type="file" name="obr"><br>
  6.  
  7. <input type="submit" value="Dalej" />
  8. </form>
  9. ?>


zapisz.php:
  1. <?php
  2.  
  3. $id=file_get_contents('id.txt');
  4.  
  5. $id++;
  6.  
  7. $plik=fopen('id.txt', "w");
  8. fwrite($plik, $id);
  9. fclose($plik);
  10.  
  11. move_uploaded_file($_FILES['obr']['tmp_name'], "gif/".$id.".gif");
  12.  
  13. echo 'Przejdz do galerii <a href="pokaz.php">Idz</a> ';
  14.  
  15. ?>


pokaz.php:
  1. <center><?php
  2.  
  3. $max=file_get_contents('id.txt');
  4.  
  5. echo 'W bazie mamy już '.$max.' obrazkow<br>';
  6.  
  7. for($i=0;$i<=$max;$i++)
  8. {
  9.  
  10. echo '<br><br><b>Obrazek o id: '.$i.'</b><br>';
  11. echo '<img src="gif/'.$i.'.gif" />';
  12.  
  13. }
  14.  
  15. ?></center>


id.txt:
  1. 0


Katalog "gif"

Jeśli dajesz to na server to daj wszystkim plikom i katalogom prawa "777", to jest strasznie ubogi skrypt więc możesz go rozbudować, jak jeszcze coś nie będzie działało to pisz a jak wszystko śmiga to zachęcam do kliknięcie na taki mały prostokąt pod moim postem z takim zielonym znaczkiem...


Ps Skrypt nie jest w żaden sposób zabezpieczony np przed wielokrotnym dodaniem tego samego obrazka przez odświeżanie strony więc zastanów się nad rozbudową...

Ps2 Wprowadziłem lekkie zmiany w wyglądzie...

*Wiem, że użyłem niepoprawnych znaczników np <center> i <b>...
kamil_lk
nie wiem.. nie działa u mnie.. no ale i tak klikne w "taki mały prostokąt pod moim postem z takim zielonym znaczkiem" tongue.gif
ShadowD
Ale powiedz co si dzieje?

Jak chcesz przetestować to: http://85.31.230.167/php/

Tylko pośpiesz się bo zaraz idę spać jutro rano tenis. smile.gif
kamil_lk
nie zapisują mi się obrazki i nie zlicza id .. id cały czas równe 0
ShadowD
Poprawiona literówka... smile.gif

Co do niezliczania id to mówiłem prawa do plików, a może masz to na localhost??
kamil_lk
mam to na localhoscie.. chyba tongue.gif używam krasnala
ShadowD
Podsuń GG nie będziemy tak postów nabijać. ;p

A dodawanie już działa??
kamil_lk
Działa biggrin.gif miałem małe problemy, ale już wszystko gra winksmiley.jpg pozdrawiam winksmiley.jpg
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.