Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Upload plików - tylko określone rozszerzenia POMOCY
kubax33
post 16.09.2010, 17:46:47
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


Witam,
głowię się i głowię i nie wychodzi. Mam taki skrypt wgrywania plików na serwer i do Was pytanie. Jak go przerobić, aby można było wgrywać zamiast plików graficznych pliki tylko z rozszerzeniem doc , xdoc, txt, rtf

Proszę pomóżcie

  1. <?php
  2.  
  3. if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
  4. $filename = basename($_FILES['uploaded_file']['name']);
  5. $filename = preg_replace("[ ]", "_", $filename);
  6. $filename = strtolower($filename);
  7. $filename = str_replace("a","a",$filename);
  8. $filename = str_replace("ę","e",$filename);
  9. $filename = str_replace("ś","s",$filename);
  10. $filename = str_replace("ć","c",$filename);
  11. $filename = str_replace("ż","z",$filename);
  12. $filename = str_replace("ó","o",$filename);
  13. $filename = str_replace("ł","l",$filename);
  14. $filename = str_replace("ń","n",$filename);
  15. $filename = str_replace("ź","z",$filename);
  16.  
  17. $ext = substr($filename, strrpos($filename, '.') + 1);
  18. if
  19. (($_FILES["uploaded_file"]["size"] < 350000)) {
  20.  
  21. $newname = 'upload/'.md5(time()).'-'.$_SERVER['REMOTE_ADDR'].'-'.$filename;
  22.  
  23. if (!file_exists($newname)) {
  24.  
  25. if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
  26. echo "Plik zostal przeslany prawidlowo jako: ".$newname;
  27. } else {
  28. echo "Blad: wystapil problem podczas wysylania!";
  29. }
  30. } else {
  31. echo "Blad: Plik ".$_FILES["uploaded_file"]["name"]." juz istnieje";
  32. }
  33. } else {
  34. echo "Zbyt duzy rozmiar";
  35. }
  36. } else {
  37. echo "Blad: plik nie zostal przeslany";
  38. }
  39. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post 16.09.2010, 17:53:21
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co z Wami dzisiaj?? Co to ma do obiektówki?! przenosze.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
IceManSpy
post 16.09.2010, 17:58:45
Post #3





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Ten skrypt akurat nigdzie nie sprawdza, czy to jest obrazek tzn gif, jpg czy inne. Tutaj jest mój fragment, który sprawdza czy to obrazek, wiec możesz przerobić pod siebie trochę.

  1. $plik_tmp = $_FILES['plik']['tmp_name'];
  2. $plik_nazwa = $_FILES['plik']['name'];
  3. if($_FILES['plik']['type'] !="image/jpeg")
  4. {
  5. header( 'Location: error.php?error=4' );
  6. }
  7. $rozszerzenie=explode(".",$plik_nazwa);
  8. $plik_rozszerzenie = strtolower(end($rozszerzenie));
  9. $dostepne_rozszerzenia = array("jpg","jpeg");
  10. if(!in_array($plik_rozszerzenie,$dostepne_rozszerzenia))
  11. {
  12. header( 'Location: error.php?error=4' );
  13. }


--------------------
Go to the top of the page
+Quote Post
krispak
post 16.09.2010, 18:16:37
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


@IceManSpy od czego jest pathinfo, po co bawic sie w explode..
  1. if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0))
  2. {
  3. $filename = basename($_FILES['uploaded_file']['name']);
  4. $chars_p = array('[ ]', 'ą', 'ę', 'ś', 'ć', 'ż', 'ó', 'ł', 'ń', 'ź');
  5. $chars_u = array('_', 'a', 'e', 's', 'c', 'z', 'o', 'l', 'n', 'z');
  6. $filename = strtolower(preg_replace($chars_p, $chars_u, $filename)); // zamiana znakow
  7. $fileArray = array('doc' , 'xdoc', 'txt', 'rtf'); // dozwolone typy plikow
  8.  
  9. if(in_array(pathinfo($filename, PATHINFO_EXTENSION), $fileArray))
  10. {
  11. if(($_FILES["uploaded_file"]["size"] < 350000))
  12. {
  13. $newname = 'upload/'.md5(time()).'-'.$_SERVER['REMOTE_ADDR'].'-'.$filename;
  14. if(!file_exists($newname))
  15. {
  16. if((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname)))
  17. {
  18. echo "Plik zostal przeslany prawidlowo jako: ".$newname;
  19. } else {
  20. echo "Blad: wystapil problem podczas wysylania!";
  21. }
  22. } else {
  23. echo "Blad: Plik ".$_FILES["uploaded_file"]["name"]." juz istnieje";
  24. }
  25. } else {
  26. echo "Zbyt duzy rozmiar";
  27. }
  28. } else {
  29. echo "Bledny typ pliku";
  30. }
  31. } else {
  32. echo "Blad: plik nie zostal przeslany";
  33. }


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
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