Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]rodzaj i wielkośc wysyłanego obrazka na serwer ftp
Forum PHP.pl > Forum > Przedszkole
GoOx
Siemka,

mam oto taki kod: co prawa wysyła on plik na serwer ftp ale jak zorbić by można było tylko wsywałc obrazki gif jpg i png? Oraz ograniczyć wielkośc obrazka w pixelach.

  1.  
  2. <html>
  3. <body>
  4. <form action="upload.php?zapisywanie" method="POST" ENCTYPE="multipart/form-data">
  5. <input type="file" name="plik"/><br/>
  6. <input type="submit" name=zapisz value="Wyślij plik"/>
  7.  
  8. </form>
  9. </body>
  10. </html>
  11.  
  12. <?php
  13. if(isset($_POST['zapisz'])) {
  14. $max_rozmiar = 300*400;
  15. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  16. if ($_FILES['plik']['size'] > $max_rozmiar) {
  17. echo 'Błąd! Plik jest za duży!';
  18. } else {
  19. echo 'Wysłano plik! '.$_FILES['plik']['name'];
  20. echo '<br/>';
  21. if (isset($_FILES['plik']['type'])) {
  22. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  23. }
  24. move_uploaded_file($_FILES['plik']['tmp_name'],
  25. $_SERVER['DOCUMENT_ROOT'].'/upload/'.$_FILES['plik']['name']);
  26. }
  27. } else {
  28. echo 'Błąd przy rzesyłąniu obrazka!!';
  29. }
  30. }
  31. ?>
  32.  
erix
if, get_image_size, fileinfo

Teraz to tylko poskładać do kupy. [;
Rysh
21 linijkę zmodyfikuj lekko i już masz zrobione wysyłanie png, gif i jpg.
GoOx
ehh nadal nie działa ;/

oto poprawiony kod lecz nie działa,

  1. <html>
  2. <body>
  3. <form action="upload.php?zapisywanie" method="POST" ENCTYPE="multipart/form-data">
  4. <input type="file" name="plik"/><br/>
  5. <input type="submit" name=zapisz value="Wyślij plik"/>
  6.  
  7. </form>
  8. </body>
  9. </html>
  10.  
  11. <?php
  12. if(isset($_POST['zapisz'])) {
  13. $max_rozmiar = 500000;
  14. $info = getimagesize($_FILES['plik']['name']);
  15. echo $info[0] ;
  16. echo "x";
  17. echo $info[1] ;
  18. if(($info[0] < '151') && ($info[1] < '200')) {
  19. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  20. if ($_FILES['plik']['size'] > $max_rozmiar) {
  21. echo 'Błąd! Plik jest za duży!';
  22. } else {
  23. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  24. echo '<br/>';
  25. $typ = $_FILES['plik']['type'];
  26. if($typ == 'png' || $typ == 'gif' || $typ == 'jpg') {
  27. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  28. }
  29. move_uploaded_file($_FILES['plik']['tmp_name'],
  30. $_SERVER['DOCUMENT_ROOT'].'/upload/'.$_FILES['plik']['name']);
  31. }
  32. } else {
  33. echo 'Błąd przy przesyłaniu danych!';
  34. }
  35. }
  36. else {
  37. echo "Obrazek jest zbyt duzy! maksymalna wielkośc to 151x200";
  38. }
  39. }
  40. ?>
  41.  


mimo innego typu pliku i większego rozmiaru system dodaje plik do servera
zdemotywowany
  1. $typ = $_FILES['plik']['type'];
  2. if($typ == 'image/png' || $typ == 'image/gif' || $typ == 'image/jpg') {
  3. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  4. }


Całkowicie pogmatwałeś kod.
erix
  1. $typ = $_FILES['plik']['type'];
  2.  
  3. if($typ == 'image/png' || $typ == 'image/gif' || $typ == 'image/jpg') {

Nie bez powodu wspomniałem o fileinfo.
GoOx
Ok ale i tak wywyła inne pliki na serwer ftp ;/

i ten warunek z wielkością obrazka też nie działa ;/
zdemotywowany
Ogólnie masz pogmatwany kod. W pewnym momencie masz taki schemat: jeżeli bla bla { kod } a tutaj zapisujesz

Zobacz co masz tutaj. Sprawdzasz warunki, ale one nie wpływają na wynik skryptu:

  1. if ($_FILES['plik']['size'] > $max_rozmiar) {
  2. echo 'Błąd! Plik jest za duży!';
  3. } else {
  4. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  5. echo '<br/>';
  6. $typ = $_FILES['plik']['type'];
  7. if($typ == 'png' || $typ == 'gif' || $typ == 'jpg') {
  8. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  9. }
  10. move_uploaded_file($_FILES['plik']['tmp_name'],
  11. $_SERVER['DOCUMENT_ROOT'].'/upload/'.$_FILES['plik']['name']);
  12. }
Rysh
Klamerkę przenieś niżej.
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.