Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysyłanie pliku na serwer, jak ograniczyć typy plików ?
Dominbik
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.02.2010

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


Witam wszystkich na forum (to mój pierwszy post na forum) !
Dopiero się uczę można powiedzieć kaleczę, mam taki ot formularz do wysyłania plików na serwer. I chciałbym ograniczyć możliwość wysyłania plików tylko do konkretnych typów np. .txt .jpe .jpeg .mp3 i moje pytanie jak to zrobic ?
Pozdrawiam i dziękuje za dop

  1. <form action="send.php" method="post" enctype="multipart/form-data">
  2. Wprowadź nazwę pliku: <input type="file" name="plik">
  3. <br><input type="submit" value="prześlij">
  4. </form>
  5.  
  6. <?php
  7. $file = $HTTP_POST_FILES["plik"]["tmp_name"];
  8. $zapisz_jako = $HTTP_POST_FILES["plik"]["name"];
  9.  
  10. if (!copy($file, $zapisz_jako)) {
  11.  
  12. print ("Kopiowanie pliku nie powiodło się...<br>\n");
  13.  
  14. }
  15.  
  16. print "<BR>Nazwa pliku: ".$HTTP_POST_FILES["plik"]["name"];
  17.  
  18. print "<BR>Rozmiar pliku: ".$HTTP_POST_FILES["plik"]["size"];
  19.  
  20. print "<BR>tymczasowo: ".$HTTP_POST_FILES["plik"]["tmp_name"];
  21.  
  22. print "<BR>Typ przesłanego pliku: ".$HTTP_POST_FILES["plik"]["type"];
  23.  
  24. ?>


EDIT: chodzi mi o jak najprostsze zabezpieczenie, mile widziane też przed jakieś trudniejsze (np. w przypadku zmiany rozszerzenia). a i gdzie tutaj mógłbym sobie ustawić ścieżkę gdzie by to się zapisywało ?

Ten post edytował Dominbik 22.02.2010, 15:14:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzemach
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


musisz sprawdzać mime-type, jak to zrobić pewnie się zapytasz? Polecam zmienną $_FILES['plik']['type'] - pokaże Ci mime type wrzucanego pliku, a to już o krok od
Kod
if($_FILES['plik']['type']=='text/plain'){
echo 'plik tekstowy';
}else{
echo 'nie jest to plik tekstowy';
}


pozostałe pliki musisz sam poszukać mimetypów, wrzucasz do formularza echo i Ci będzie się pokazywało.
obrazki to będą przykładowo: 'image/png','image/gif','image/jpeg','image/pjpeg';

to jest najlepsze rozwiązanie, bo rozszerzenia można bardzo łatwo oszukać, a to jest faktyczny typ pliku. tzn to też można oszukać, ale nie ma to sensu bo nie da się to wykorzystać.

Ten post edytował grzemach 22.02.2010, 15:17:33
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 09:48