Wlasny uploader ze zdjeciami na strone

0

Witam.

Chce napisac swoj wlasny uploader zdjec z uploaderem zdjec.
Ma ktos jakis pomysl jak zrobic uploader bar ? Z procentowym uploadem zdjecia?

0

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.

1

@mr_jaro: to nie kwestia wersji php. chodzi o technologie client side.

Google: ajax upload progress bar

0

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:

  1. 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?.

  2. 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.

  3. I kolejna rzecz to chce przerobic skrypt na ajaxa.

Czy istnieje jakas szanasa na zatrzymanie uploadu i jego wznowienie?

0

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

0

sorry, masz racje. rozumiem to źle się wyraziłem. chodzi mi o funkcje .ajax() w jquery.

0

nie obsługuje ona takich cudów, napisz sobie własną funkcję, która realizuje to samo, a dodatkowo ogarnia uploadowanie plików

0
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.

0

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

0

Jak na razie nie znalazlem, zadnej funkcji do ajaxa XMLHttpRequest, ktora zatrzymuje i wznawia ajaxa. Czy jestes pewnien, ze jest mozliwe zapausowanie przesylania pliku?

0

Ty naprawdę nie masz Google? Postawię Ci bramkę proxy jak chcesz, bo mi smutno :(

http://stackoverflow.com/questions/446594/abort-ajax-requests-using-jquery

0

@dzek69 nakierowujesz mnie caly czas na funkcje, ktora juz dawano znalazlem: xhr.abort(). Ona sluzy do przerwania i odrzucenia ajaksowego requesta. Po uzyciu .abort() nie dasz rady wznowic tego samego requesta. Jezeli sie myle po prostu nakieruj mnie. Moze jestem slepy, nie wiem...

W jakims podeslanym przez Ciebie (podpowiedzi google) znalazlem art, w ktorym ktors uzywa .abort() a poxniej wznawia przesylanie. Ale dziala to w taki sposob, ze klikasz cancel czyli abort, nastepnie pojawia Ci sie wznow. A tak naprawde masz delay() i on czeka az uploadujesz plik to tego procentu co odrzuciles i dalej uploduje.

0

Ano tak, abort przerywa, nie pauzuje.
Podsyłałem Ci parę postów wcześniej - http://4programmers.net/Forum/1048270 - info co wpisać w Google.
W pierwszym artykule były trochę nieaktualne informacje (teraz zapewne weszły już w standard, tam były przykłady pod Mozillę), zakładam, że w reszcie dokładniejsze.

Tam było nawet jakieś demo z wysyłaniem plików i pauzowaniem tego działania.

Podejrzewam, że opierało się ono na dzieleniu pliki na fragmenty, i pauzowanie po prostu dosyłało fragment do końca, a reszta czekała.

Ale tylko podejrzewam, bo to już nie moja rzecz dokładnie analizować linijka po linijce jak to działa - to Twoja rzecz, bo to Twój problem. Ja Ci wskazałem gdzie szukać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1