Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload plików - tylko określone rozszerzenia POMOCY
kubax33
post
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
nospor
post
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.
Go to the top of the page
+Quote Post
IceManSpy
post
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
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. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:46