Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt uploadu
Forum PHP.pl > Forum > PHP
Husarzyk
Mam taki skrypt:
  1. <?php
  2. $uploaddir = './';
  3.  
  4. if($_FILES['plik1']['error'] == UPLOAD_ERR_OK){
  5. $new_name = $uploaddir.$_FILES['plik1']['name'];
  6. $temp_name = $_FILES['plik1']['tmp_name'];
  7. if(move_uploaded_file($temp_name, $new_name)){
  8. echo "Plik został załadowany.\n";
  9. }
  10. else{
  11. echo "Nieprawidłowy plik\n";
  12. }
  13. }
  14. else{
  15. echo("Wystąpił błąd: ");
  16. switch($_FILES['plik1']['error']){
  17. case UPLOAD_ERR_INI_SIZE :
  18. case UPLOAD_ERR_FORM_SIZE :
  19. echo("Przekroczony maksymalny rozmiar pliku!\n");
  20. break;
  21. case UPLOAD_ERR_PARTIAL :
  22. echo("Odebrano tylko częśc pliku!\n");
  23. break;
  24. case UPLOAD_ERR_NO_FILE :
  25. echo("Plik nie został pobrany!\n");
  26. break;
  27. default :
  28. echo("Nieznany typ błędu!\n");
  29. }
  30. }
  31. ?>


Chce do niego dodać ograniczenia na typy
  1. $_FILES[plik][type] == "image/jpg"
  2. $_FILES[plik][type] == "image/jpeg"
  3. $_FILES[plik][type] == "image/png"
  4. $_FILES[plik][type] == "image/gif"

oraz ma odczytywać rozszerzenie uploadowanego skryptu i wypisywać że go nie można dodać.
Czy
jakoś za pomocą
  1. $uploaded_type

  1. if ($uploaded_type!="application/zip")
  2. {
  3. echo "Wysłany plik to: ".$uploaded_type." a dozwolone są tylko pliki ZIP.<br>";
  4. $ok=0;
  5. }
  6.  
  7. if ($ok==0)
  8. {
  9. Echo "Wysyłanie nie powiodło się.";
  10. }
Blame
Łopatologicznie:
  1. echo $_FILES[plik][type]; //1
  2. echo pathinfo('ścieżka do pliku')['extension']; //2

1. Wyświetli MIME uploadowanego pliku.
2. Wyświetli rozszerzenie.
Teraz tworzysz sobie tablicę z dozwolonymi MIME i/lub(jak wolisz) rozszerzeniami i sprawdzasz za pomocą if'a i in_array czy plik może być wrzucony.
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.