Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML][PHP]Wysyłanie plików za pomocą formularza
Forum PHP.pl > Forum > Przedszkole
hapek1
Witam
Mam taki skrypcik (znaleziony w necie)
  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
  4. </HEAD>
  5. <BODY>
  6. <FORM NAME = "formularz1"
  7. ENCTYPE = "multipart/form-data"
  8. ACTION = ""
  9. METHOD = "POST">
  10. <TABLE>
  11. <TR>
  12. <TD>Nazwa pliku:</TD>
  13. <TD>
  14. <INPUT TYPE = "file"
  15. NAME = "plik"
  16. SIZE = "30"
  17. VALUE = "">
  18. </TD>
  19. <TD ALIGN = "left">
  20. <INPUT TYPE = "submit"
  21. NAME = "wyslij"
  22. VALUE = "Wyślij plik">
  23. </TD>
  24. </TR>
  25. </TABLE>
  26. </BODY>
  27. </HTML>
  28.  
  29.  
  30. <?PHP
  31. $uploaddir = ''; // katalog gdzie ma zostać zapisany plik
  32. if(move_uploaded_file($_FILES['plik']['tmp_name'], $uploaddir.$_FILES['plik']['name'])){
  33. echo("Plik zosał załadowany.");
  34. }
  35. else{
  36. echo("Plik nie został załadowany.");
  37. }
  38. ?>


Ten skrypt jest "niebezpieczny" tzn. Przyjmuje wszystkie pliki nie patrząc na rozszerzenie. Chciałbym aby przyjmował tylko pliki o określonym rozmiarze i rozszerzeniu np. PNG, GIF, JPG i żeby nie przyjmował np pliku tekstowego z rozszerzeniem graficznym .
Proszę o podpowiedź jak to zrobić ewentualnie inny skrypt.

PS.
Za pomocą podobnego skryptu załadowałem na serwer plik bez tytułu.PNG nazwa została automatycznie zmieniona na bez tytu?u.PNG i w żaden sposób nie mogę tego usunąć.
Ociu
Zrób sobie print_r($_FILES);
rozbijasz nazwę pliku na nazwę właściwą i rozszerzenie. W manualu w komentarzach do $_FILES jest nawet gotowiec:
  1. // begin Dave B's Q&D file upload security code
  2. $allowedExtensions = array("txt","csv","htm","html","xml",
  3. "css","doc","xls","rtf","ppt","pdf","swf","flv","avi",
  4. "wmv","mov","jpg","jpeg","gif","png");
  5. foreach ($_FILES as $file) {
  6. if ($file['tmp_name'] > '') {
  7. if (!in_array(end(explode(".",
  8. strtolower($file['name']))),
  9. $allowedExtensions)) {
  10. die($file['name'].' is an invalid file type!<br/>'.
  11. '<a href="java script:history.go(-1);">'.
  12. '&lt;&lt Go Back</a>');
  13. }
  14. }
  15. }
  16. // end Dave B's Q&D file upload security code
  17. ?>

wystarczy go przerobić aby przepuszczał tylko obrazki.
hapek1
i nie działa wyświetla sie komunikat że plik jest nieprawidłowy ale i tak zostaje przesłany na serwer
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.