Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzic poprawnosc pliku przed uploadem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
marcini82
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?
nospor
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 )
mike
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. ?>
marcini82
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 :-)
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.