Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pobieranie plików
kapral
post 10.07.2005, 20:20:56
Post #1





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 5.03.2005

Ostrzeżenie: (20%)
X----


Nie wiem jak zrobić aby ze strony można było pobrać pliki *.jpg i *.gif i sprawdzić czy już czasem taki nie istnieje jeśli już taki jest to zeby pisało ze już taki plik istnieje
Go to the top of the page
+Quote Post
maker
post 10.07.2005, 20:23:38
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 17.09.2004

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


file_exists()" title="Zobacz w manualu PHP" target="_manual
Przykład 1. Sprawdzanie czy plik istnieje
  1. <?php  
  2. $filename = '/sciezka/do/foo.txt';
  3.  
  4. if (file_exists($filename)) {
  5.  echo &#092;"Plik $filename istnieje\";
  6. } else {
  7.  echo &#092;"Plik $filename nie istnieje\";
  8. }
  9. ?>


--------------------
My Webpage
Go to the top of the page
+Quote Post
kapral
post 10.07.2005, 20:26:45
Post #3





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 5.03.2005

Ostrzeżenie: (20%)
X----


ok, dzięki nie myślałem że to takie proste,
jeszcze tylko pobieranie i już jestem w domu winksmiley.jpg
Go to the top of the page
+Quote Post
gam3r
post 11.07.2005, 11:29:52
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 8.06.2005

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


Najpierw formularz do przesyłania:
(plik wybierz.html)
  1. <form action='upload.php' method='post' encType='multipart/form-data'>
  2. <input type='file' name='obraz'>
  3. <input type='submit'>
  4. </form>

Potem skrypt, który przetwarza dane formularza (plik upload.php)
  1. <?php
  2. function error_msg($ciag)
  3. {
  4.  
  5. echo&#092;"<script>
  6.         var komunikat = &#092;"$ciag\";
  7.         alert(komunikat);
  8.         history.go(-1);
  9.         </script>\"
  10. }
  11.  
  12. if(!isset($_FILES['obraz']['tmp_name'])) error_msg('nie przesłano pliku');
  13.  
  14. $nazwapliku1  = $_FILES['obraz']['name'];
  15. $nazwapliku    = strtolower($nazwapliku1);
  16. $rozszerzenie  = strstr($nazwapliku, '.');
  17.  
  18.  
  19. if($rozszerzenie !='jpg'  && 
  20.    $rozszerzenie !='jpeg'&& 
  21.    $rozszerzenie !='gif') error_msg('złe rozszerzenie');
  22.  
  23. if(file_exists(\"katalog_z_obrazami/$nazwapliku1\")) error_msg('taki plik już istnieje');
  24.  
  25. if(!move_uploaded_file($_FILES['obraz']['tmp_name'], \"katalog_z_obrazami/$nazwapliku1\") )
  26.   error_msg('błąd przy zapisie pliku')
  27. else echo \"wszystko ok\";
  28. php?>


Pisałem ten skrypt u qzyna, nie mając przy sobie książek ani swoich skryptów, z których czasami korzystam, i do tego na szybko, dlatego nie gwarantuję że wszystko będzie ok. Kiedy jutro będe w domq to zedytuje tego posta jakby coś było nie tak. Z uwagami też piszcie:)

Oto opis działania skryptu:
Wiadomo najpierw potrzebny nam jest formularz z obsługą uploadu plików dlatego do znacznika <form> dodałem encType='multipart/form-data' który na to pozwala.
Następnie w pliku upload.php definiuje funkcje error_msg(), która wyświetla okno w języku javascript, po naciśnięciu 'ok' wracamy o 1 do tyłu w historii. Funkcja ta będzie służyć to wyświetlania różnych komunikatów, przyda sie nie tylko w tym skrypcie. Nastepnie sprawdzam czy przesłano jakikolwiek plik, potem za pomocą strtolower() zmieniam wielkość liter na małe (na systemach LINUX wielkość liter ma znaczenie). Za pomocą strstr() urywam rozszerzenie pliku i sprawdzam czy jest to 'jpg', 'jpeg' albo 'gif'. Później sprawdzam czy dany pliku już nie został uploadowany, jeśli nie to go zapisuje. W razie błędu wyświetlam odpowiedni komunikat. To chyba na tyle, wszystko powinno działać, chociaż zawsze jakaś literówka może sie pojawić. Jeżeli znajdziecie błąd, to poprawie posta;)

Ten post edytował gam3r 11.07.2005, 11:50:05
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 23:10