Witam.
Chce napisac swoj wlasny uploader zdjec z uploaderem zdjec.
Ma ktos jakis pomysl jak zrobic uploader bar ? Z procentowym uploadem zdjecia?
Witam.
Chce napisac swoj wlasny uploader zdjec z uploaderem zdjec.
Ma ktos jakis pomysl jak zrobic uploader bar ? Z procentowym uploadem zdjecia?
Google twym przyjacielem jest. W sieci znajdziesz masę kodu i gotowych skryptów na to. Najwięcej we flashu jest robionych, ale z tego co wiem php 5.4 ma możliwość podawania % wgrania, więc musisz pobawić się trochę z ajaxem na o stworzenie samego progressbara to już nie problem w takim wypadku. Więcej nie powiem bo nigdy nie musiałem pisać tego od podstaw.
@mr_jaro: to nie kwestia wersji php. chodzi o technologie client side.
Google: ajax upload progress bar
To ze istnieje jakas tam zmienna w ktorejs z nowszych wersji php, podajaca % uploadu to wiem, ale w moim przypadku wydaje mi sie, ze musze to samo zrobic po stronie js.
A uzywanie gotowcow zabija programiste. Po co uzywac czyisc kod jak moge napisac to sam?
Nie chodzi mi o sam loader bar. Chodzi mi, o proces, ktory oblicza % wyslanego pliku na serwer ;) cos jak ajaxsubmit
, ale z opciami. Cos tam znalazlem w google zaraz bede probowal.
Napisalem swój własny uploader zdjęć w jquery :)
Wpisałem to co podałeś @dzek69 w wujka google.
Przeczytałem 2 - 3 toturiale o new FormData()
oraz new XMLHttpRequest()
.
Upload bar mam w CSS, niestety ściągnięte na rzywca. Muszę jeszcze skumać jak działa sam xhr.upload.addEventListener("progress", progressHandler, false);
event w progress bar. Bo nigdzie nie znalazłem na jakiej zasadzie. Przeglądarka wysyła ile byte wysłała przez zmienną: event.loaded
? Dobrze to kumam czy ni w ząb.
Jutro biore się za kolejny etap. Po uploadzie zdjęcia chcę go wyświetlić na stronie, w małej ikonie z przycikiem delete. Wydaje mi się, że funkcja load()
w jquey powinna wystarczyć do tego, ale to tylko w teorii. Jeszcze nigdy nie używałem tej funkcji do zdjęć tylko to plików tekstowych.
Pozdrawiam i dzięki za pomoc :)
edit:
ok, funkcja .load()
ładuje po zdjęcie z powrotem :) Zastanawiam się jak je zmniejszyć? w sumie przez css to trochę bezsensu przy dużych rozmiarach zdjęć. Zastanawiam się czy przez php nie stworzyć tymczasowego pliku z miniaturą zdjęcia? Co Wy na to?.
Kolejna sprawa. Czy jest mozliwosc zapauzowania i wznowienia przesylania pliku za pomoca XMLHttpRequest
? Tutaj niebardzo moge sam cos znalezc jak na razie w google. Czytalem gdziec na forum, ze niby da rade, ale nie napisali jak. Nie podali rozwiazania, a szkoda.
I kolejna rzecz to chce przerobic skrypt na ajaxa.
Czy istnieje jakas szanasa na zatrzymanie uploadu i jego wznowienie?
Jesteś bardzo słaby w Google, skoro nie znalazłeś pauzowania. Artów widziałem kilka, wyglądały na przydatne po samych wynikach, jeden otworzyłem nawet i był ok.
Wystarczyło wpisać pause upload XMLHttpRequest
.
I kolejna rzecz to chce przerobic skrypt na ajaxa.
przecież XMLHttpRequest to jest ajax, nie da się bez ajaxa zrobić progress bara
sorry, masz racje. rozumiem to źle się wyraziłem. chodzi mi o funkcje .ajax()
w jquery.
nie obsługuje ona takich cudów, napisz sobie własną funkcję, która realizuje to samo, a dodatkowo ogarnia uploadowanie plików
dzek69 napisał(a):
nie obsługuje ona takich cudów (...)
co, kto, nie obsługuje? masz na myśli funckja .ajax()
nie obsługuje pauzowania i wznowienia?
oczywiście mam namyśli stop i start upload, a nie abord :)
.ajaxStop()
.ajaxStart()
nie wiem dokladnie jak dzialaja te funkcje, ale mogą nie śmigać i mozesz mieć rację.
Czyli lepiej użyć czytego ajaxa w js niż w jquery to masz na myśli?
Uploadownie plików już mam ogarnięte w jednej funkcji. Chyba teraz do tego wypadałoby napisać stop i start funkcje. A nie na odwrót? :D Uploadowienie plików mam ogarnięte. Pisałem wcześniej. Poszedłem o krok dalej i chcę nauczyć się czegoś wiecej. I pomyślałem czemu by nie sprawdzić czy nie da rady napisać stop, start i abort funkcji do mojego uploadera :) z XMLHttpRequest
.
dokumentacja nie boli.
ajaxStop
-> Description: Register a handler to be called when all Ajax requests have completed
Czyli lepiej użyć czytego ajaxa w js niż w jquery to masz na myśli?
tak jest, ew. możesz rozbudować jakoś $.ajax, ale to raczej będzie trudniejsze z tego co kojarzę jak się robiło upload przez xhr w html5
Jak na razie nie znalazlem, zadnej funkcji do ajaxa XMLHttpRequest
, ktora zatrzymuje i wznawia ajaxa. Czy jestes pewnien, ze jest mozliwe zapausowanie przesylania pliku?