Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload plików - tylko określone rozszerzenia POMOCY
Forum PHP.pl > Forum > PHP
kubax33
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. ?>
nospor
Co z Wami dzisiaj?? Co to ma do obiektówki?! przenosze.
IceManSpy
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. }
krispak
@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. }
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.