Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ograniczenie wielkości zdjęcia w px przy upload file, Ograniczamy wielkość zdjęcia w px do pewnego momentu
KrisKros123
post 17.07.2018, 08:52:56
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 20.03.2018

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


Witam,

mam taki skrypt PHP do przesyłu pliku na serwer:

  1. <?php
  2. $f = $_FILES['plik_upload'];
  3. IF($f['type'] == 'image/png' or
  4. $f['type'] == 'image/jpeg' or
  5. $f['type'] == 'image/gif')
  6. {
  7. $x =
  8. getimagesize($f['tmp_name']);
  9. IF(!is_array($x) or $x[0] < 2)
  10. {
  11. die('Zły plik graficzny');
  12. }
  13. $patch = str_replace('upload.php', '', $_SERVER['SCRIPT_FILENAME']);
  14. copy($f['tmp_name'], $patch.$f['name']);
  15. }
  16. else {
  17. echo 'Niedozwolony plik dozwolone to: *png, *jpg, *gif';
  18. }



I chodzi o to żebym miał jeszcze ograniczenie do wielkości zdjęcia np. żeby plik o rozmiarach > 250px na 250px nie został przesłany, czyli nie większy. Jak to zrobić umieszczając to w tym kodzie?? Proszę o pomoc. Z góry dziękuję.


Go to the top of the page
+Quote Post
StrefaPi
post 17.07.2018, 08:57:37
Post #2





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


Pobierasz funkcją getimagesize() już wszystkie dane /linia 8 Twojego kodu/ zobacz co zwraca ta funkcja i zrób poprawny if.

Ten post edytował StrefaPi 17.07.2018, 08:59:56


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
KrisKros123
post 17.07.2018, 09:14:27
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 20.03.2018

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


Żeby zobaczyć co zwraca zrobiłem tak

  1. $rozmiar = getimagesize($f['tmp_name']);
  2. echo $rozmiar ;


ale tylko wyskakuje mi array, potem zrobiłem krok dalej i dopisałem:

  1. getimagesize($f['tmp_name']);
  2. IF(!is_array($x) or $x[0] > 250){
  3. /*Dalszy skrypt*/
  4. }


ale wysyła mi tylko większe. Co robię źle??

Ten post edytował KrisKros123 17.07.2018, 09:21:49
Go to the top of the page
+Quote Post
StrefaPi
post 17.07.2018, 09:19:37
Post #4





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


  1. var_export($rozmiar);


prawidłowo wysyła...

$x[0] > 250 - oznacza rozmiar większy niż 250


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
KrisKros123
post 17.07.2018, 09:32:38
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 20.03.2018

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


No tak, nie ten znak wstawiłem teraz działa idealnie.

  1.  
  2. <?php
  3. $f = $_FILES['plik_upload'];
  4. IF($f['type'] == 'image/png' or
  5. $f['type'] == 'image/jpeg' or
  6. $f['type'] == 'image/gif')
  7. {
  8. $x = getimagesize($f['tmp_name']);
  9. IF(!is_array($x) or $x[0] < 2)
  10. {
  11. die('Zły plik graficzny');
  12. }
  13. $y = getimagesize($f['tmp_name']);
  14. IF(!is_array($x) or $x[0] < 250){
  15. IF(!is_array($y) or $y[0] < 250){
  16.  
  17. $patch = str_replace('upload.php', '', $_SERVER['SCRIPT_FILENAME']);
  18. copy($f['tmp_name'], $patch.$f['name']);
  19.  
  20. }
  21. else{
  22. echo "Za duży rozmiar na osi y maksymalny to 250px";
  23. }
  24. }
  25. else{
  26. echo "Za duży rozmiar na osi x maksymalny to 250px";
  27. }
  28.  
  29. }
  30. else {
  31. echo 'Niedozwolony plik dozwolone to: *png, *jpg, *gif';
  32. }
  33.  
  34.  


Ten post edytował KrisKros123 17.07.2018, 09:35:52
Go to the top of the page
+Quote Post
StrefaPi
post 17.07.2018, 09:40:56
Post #6





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


Zrób jednego ifa a nie trzy, rozmiar też pobierasz kilka razy, a wystarczy tylko raz.


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
KrisKros123
post 17.07.2018, 09:55:18
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 20.03.2018

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


Popatrzyłem, pomyślałem i wykombinowałem smile.gif. Kod:

  1. <?php
  2. $f = $_FILES['plik_upload'];
  3. IF($f['type'] == 'image/png' or
  4. $f['type'] == 'image/jpeg' or
  5. $f['type'] == 'image/gif')
  6. {
  7. $x = getimagesize($f['tmp_name']);
  8. IF(!is_array($x) or $x[0] < 2 or $x[0] > 250)
  9. {
  10. die('Zły rozmiar zdjęcia');
  11. }
  12.  
  13.  
  14. $patch = str_replace('upload.php', '', $_SERVER['SCRIPT_FILENAME']);
  15. copy($f['tmp_name'], $patch.$f['name']);
  16.  
  17. }
  18. else {
  19. echo 'Niedozwolony plik dozwolone to: *png, *jpg, *gif';
  20. }
  21.  
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: 20.04.2024 - 00:39