Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielkość uploadowanego pliku w JS-ie?
Forum PHP.pl > Forum > Po stronie przeglądarki
qqrq
Mam pytanko - czy da się sprawdzić wielkość pliku uploadowanego przy pomocy JS? Tzn. mam w formularzu pola jedno typu file, drugie typu hidden. Wybieramy sobie plik do uploadu, submitujemy i w tym momencie chciałbym, żeby rozmiar pliku, który wybrałem został zapisany w hiddenie i poleciał na serwer. Da się tak w JS? guitar.gif
RaNdaLLHD
Nie da się. Spróbuj w PHP.
qqrq
OK, a w jaki sposób jest to robione np. we Flashu, albo w Javie, że działa progress bar przy uploadowaniu plików? Wydaje mi się, że powinien tam być jakiś sposób na poznanie rozmiaru uploadowanego pliku przed wgraniem go na serwer...
RaNdaLLHD
Nie wiem jak jest w Javie ani we Flashu. Ale PHP można sprawdzić rozmiar uploadowanego pliku po przez $_FILES['userfile']['size'].
qqrq
Wiem jak to się w PHP-ie robi, ale w PHP można sprawdzić rozmiar uploadowanego pliku PO jego wgraniu na serwer, a ja chcę to zrobić PRZED wgraniem na serwer (po stronie klienta)
revyag
Nie sprawdzisz tego. Używając js musiałbyś mieć dostęp do lokalnego dysku, więc z przyczyn bezpieczeństwa to rozwiązanie odpada.
Jedyna opcja to aplet javy albo coś z activex zwiazane.
qqrq
OK, ale podrążę jeszcze trochę... guitar.gif Mam rozumieć, że aplety, czy kontrolki active-x mają dostęp do dysku klienta (czyli nie są do końca bezpieczne)?
tsharek
tak:) nie są do końca bezpieczne. tak jak z oprogramowaniem - nie instalujesz odrazu trojanów. A przeglądarka musi się zapytać najpierw czy zezwolisz danej kontrolce się zalinstalować.
qqrq
Spoko, dziękuję, czuję się satysfakcjonująco doinformowany (a jakie to przyjemne...) party.gif
zbig
Ciekawym rozwiazaniem kontroli uploadu jest flashowa klasa FileReference. W polaczeniu z plikiem php ktory faktycznie tego uploadu dokonuje mozna uzyskac pare niemozliwych do otrzymania w tradycyjnym (tylko phpowym) uploadzie. Po pierwsze mamy kontrole wielkosci uploadowanego pliku juz z poziomu przegladarki. Oznacza to ze nie musimy tego pliku wysylac na serwer zeby dowiedziec sie jaki jest duzy. Po drugie dzieki metodzie browse juz z poziomu przegladarki mozemy okreslic jakiego typu pliki pozwalamy uploadowac. Po trzecie klasa ma metody pozwalajace na zwrocenie informacji o HttpError oraz IOError. No i to co najbardziej efektowne pozwala zbudowac bardzo ladny progress bar bez potrzeby pilowania ajaxem po serwerze. Przy odrobinie wyobrazni mozna tez wyliczyc i pokazac szybkosc uploadu. Uzywajac klasy ExternalInterface mozna na koniec wywolac lokalnie funkcje javy script ktora pokaze np. za pomoca ajaxa zaladowany obrazek w jakims divie. Nawiazujac do pytania qqrq nie mozna zrobic tego jedynie za pomoca js
iro88
Nieco odświeżę. Czy coś się zmieniło w tej kwestii? Może doszły jakieś narzędzia, którymi można to rozwiązać? Właśnie zacząłem poszukiwania, jeśli ktoś słyszał jak można rozwiązać ten problem bez użycia Flash'a to bardzo proszę o jakieś wskazówki.
erix
Nieco. wink.gif

https://developer.mozilla.org/en/using_file...eb_applications

Ale musisz nadal pamiętać o przeglądarkach, które tego nie obsługują.
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.