qqrq
30.08.2007, 19:50:44
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?
RaNdaLLHD
30.08.2007, 19:55:58
Nie da się. Spróbuj w PHP.
qqrq
30.08.2007, 20:19:38
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
30.08.2007, 20:27:27
Nie wiem jak jest w Javie ani we Flashu. Ale PHP można sprawdzić rozmiar uploadowanego pliku po przez $_FILES['userfile']['size'].
qqrq
30.08.2007, 20:46:41
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
30.08.2007, 21:52:17
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
30.08.2007, 22:22:14
OK, ale podrążę jeszcze trochę...

Mam rozumieć, że aplety, czy kontrolki active-x mają dostęp do dysku klienta (czyli nie są do końca bezpieczne)?
tsharek
31.08.2007, 06:43:29
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
31.08.2007, 09:41:08
Spoko, dziękuję, czuję się satysfakcjonująco doinformowany (a jakie to przyjemne...)
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
16.07.2011, 11:52:23
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
16.07.2011, 12:41:59
Nieco.
https://developer.mozilla.org/en/using_file...eb_applicationsAle 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.