DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Asinhroni upload (http://www.devprotalk.com/showthread.php?t=3285)

Ilija Studen 01. 08. 2007. 08:54

Asinhroni upload
 
Sviđa mi se rešenje da na stranicama sa upload formom na kojima očekuješ da će se čovek zadržati više vremena da upload kreće u pozadini kada korisnik odabere fajl (GMail koristi takvo rešenje u svojoj Reply formi). Dok ti pišeš upload polako štrika i sve super.

Da li je neko radio nešto slično? Tips and tricks?

Mogu da guglam, ali ipak mislim da bi se o ovome valjalo i prodiskutovati malo.

ivanhoe 01. 08. 2007. 09:03

ja koristio iframe za to... prilicno je jednostavno odraditi sam upload, glavni problem je bio kako pratiti koji fajl pripada kome, i koje fajlove pobrisati ako covek odustane, jer se onda stvar dosta iskomplikuje...

ja sam koristio sessione da pamtim uploadovane fajlove, a onda sam namestio preko crona da se periodicno brisu oni kojima je istekao session...fino radi..

noviKorisnik 01. 08. 2007. 09:10

Može li uopšte drugačije? Koliko znam, Ajax je lijen za upload, neće to da radi ... onda ostaju trikovi koji su postojali oduvek :-)

xippi 01. 08. 2007. 10:15

mislim da ne. i google, koliko znam, koristi iframe

Ilija Studen 01. 08. 2007. 10:18

Šta konkretno može da se uradi iframe pristupom? Može da se sluša završetak uploada? Prekine upload koji ide?

skaarj 01. 08. 2007. 10:31

U iframeu je forma kojom radis upload. Sto mozes u obicnoj formi, mozes i tamo.

ivanhoe 01. 08. 2007. 10:35

mozes da handlujes zavrsetak uploada, samo iz ifrejma pozoves neku svoju funkciju na glavnoj strani. Cancel uploada koji je u toku ne znam kako bi odradio, posto se radi o obicnom submitu forme..

noviKorisnik 01. 08. 2007. 11:58

Citat:

Originalno napisao skaarj (Napišite 39638)
U iframeu je forma kojom radis upload. Sto mozes u obicnoj formi, mozes i tamo.

Ne shvatam postavku baš tako (istina, nisam radio u praksi, ali mi deluje jasno kako ide jedina smislena implementacija)...

Iframe je vizalno skriven, cela forma je na stranici. File input ima pridružen handler za onchange, koji okida submit s izmenjenim targetom na iframe (i s akcijom koja možda bolje odgovara). Nakon prijema fajla, iframe dobija generisan sadržaj s povratnom informacijom (taj i taj fajl je uspešno stigao na server) koju predaje glavnoj stranici okidanjem funkcije (ko što već reče ivanhoe). U tom trenutku postaje suvišan file input pa se izbacuje iz formulara. Itd.

skaarj 01. 08. 2007. 13:25

Poenta mog posta je da je u pitanju obican file upload pomocu forme skrivene u Iframe (ovo moze da se odradi na vise nacina ali je to princip). Sve sto mozes da radis kada radis obican upload mozes da radis i ovde. Dakle, nema onreadystatechange jer nije u pitanju XHTTP request, a cini mi se da je na to Ilija mislio kada je postavio pitanje.

ivanhoe 01. 08. 2007. 15:30

Citat:

Originalno napisao noviKorisnik (Napišite 39645)
Iframe je vizalno skriven, cela forma je na stranici. File input ima pridružen handler za onchange, koji okida submit s izmenjenim targetom na iframe (i s akcijom koja možda bolje odgovara). .

ono sto sam ja radio je bila malo drugacija ideja: Na glavnoj stranici, unutar forme je uglavljen iframe tako da izgleda kao deo strane(znaci vidljiv je, ali izgleda kao jedan od boxova u formi). Postoji i link Upload more files koji dinamicki dodaje te ifrejmove, znaci moze da ih bude vise. U svakom ifrejmu se nalazi forma koja u sebi ima samo jedan file input, i na onchange radi submit te forme ka php skripti koja handluje upload. Kad se zavrsi upload skripta vrati mali html koji ima link sa imenom fajla (klik na link omogucava da se fajl pogleda u novom prozoru) i pored njega dugme REMOVE, koje sluzi da se obrise taj fajl, ako se korisnik predomisli.

I to je to, kako korisnik popunjava file inpute, tako se oni submituju, a ti za to vreme mozes da radis druge stvari na osnovnoj stranici. Kad se submituje glavna forma ona pokupi iz sessiona spisak svih uploadovanih fajlova i poveze ih u bazi sa ostalim podacima. Bitno je da glavna forma mora da saceka da se zavrse svi zapoceti uploadi, pa tek onda da se submituje.


Vreme je GMT +2. Trenutno vreme je 00:34.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.