Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzic poprawnosc pliku przed uploadem
marcini82
post 10.03.2006, 09:19:15
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Witam!

Mam formularz do wyslania pliku na serwer.
Czy istnieje mozliwosc sprawdzenia w JS, czy sciezka do wysylanego pliku w formularzu jest wpisana poprawnie? Tzn. ze to rzeczywiscie jest sciezka do istniejacego pliku, a nie ze ktos sobie wpisal jakies bzdury i nacisnal wyslij?
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 09:22:46
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale przeciez w formularzu uploaduje sie plik przy pomocy <input type="file" ...
http://4programmers.net/(X)HTML/Input
To pole powoduje, ze plik wybiera się bezposrednio z dysku, przy pomocy eksplorera, a nie ze ty se cos wpiszesz. Czyli ze sciezka jest poprawna.

pozatym js nie ma prawa wertowac sam z siebie dysku klienta

ps: w zasadzie to mozna se z palca cos wpisac, ale to nie przejdzie, nawet jesli jest poprawna sciezka. (chyba winksmiley.jpg )


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post 10.03.2006, 09:31:31
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Lepiej to zrobić po stronie php, bo JavaScript może służyć tylko jako pomoc przy walidacji danych przychodzących i jest często zawodny. Powód: łatwo wyłączyć JavaScript

A w php:
  1. <form action="" method="post">
  2. <input type="file" name="plik" />
  3. <input type="submit" name="submit" value="OK" />
  4. </form>
  5. <?php
  6.  
  7. switch( $_FILES['plik']['error'] )
  8. {
  9. case 0:
  10. echo 'There is no error, the file uploaded with success.';
  11. break;
  12. case 1:
  13. echo 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
  14. break;
  15. case 2:
  16. echo 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the 
    HTML form.'
    ;
  17. break;
  18. case 3:
  19. echo 'The uploaded file was only partially uploaded.';
  20. break;
  21. case 4:
  22. echo 'No file was uploaded.'; // Ciebie interesuje to
  23. break;
  24. case 6:
  25. echo 'Missing a temporary folder. Introduced in php 4.3.10 and php 5.0.3.'; // Ciebie interesuje to
  26. break;
  27. }
  28.  
  29. ?>
Go to the top of the page
+Quote Post
marcini82
post 10.03.2006, 10:16:20
Post #4





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Dodawanie w php mam tak:
  1. <?php
  2.  
  3. if ($_FILES['userfile']['error']==0){
  4.  // tu dodanie pliku
  5. }else{
  6.  //tu jakas obsluga bledow
  7. }
  8.  
  9. ?>

A formularz:
  1. <form enctype="multipart/form-data" id="wyslijPlik" onsubmit="return sprawdzPlik();"
  2. action="http://costam" method="post">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
  4. Wybierz plik: <input id="userfile" name="userfile" type="file" />
  5. <input type="submit" value="Wyślij plik" />
  6. </form>


I wlasnie o to chodzi, ze moge sobie wpisac dowolny ciag znakow i php mi to przyjmuje, tworzac pusty plik o nazwie jaka wpisze sobie w formularzu. Dlatego chcialbym juz przed wyslaniem skontrolowac, czy taki plik u klienta istnieje czy moze ktos sobie glupoty wpisal.

EDIT:
Male sprostowanie: glupoty moge sobie wpisac w FF i wyslac jako plik. IE nie pozwala wyslac czegos co nie jest plikiem.
BTW: Rzadko sie zdarza zeby IE robil cos lepiej, ale jednak :-)

Ten post edytował marcini82 10.03.2006, 10:23:13
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: 19.07.2025 - 01:05