Upload přes AJAX
22.11.2005
Velice zajímavou novinku uvedl GMail, když zprovoznil asynchronní nahrávání souborů na server. Ihned potom, co vyberete soubor se v pozadí začne nahrávat na server. Zatím mám k dispozici jen javascriptovou verzi pro Mozillu, a tak budu rád, pokud mi někdo zašle také funční skript pro Internet Explorer, který neumožňuje duplikaci DOM objektů FILE.
HTML kód
<input id="cc_pd_select_photo" type="file" accept="image/gif,image/jpeg,image/png" name="cc_pd_photo" onchange="Element('cc_pd_photo').src = 'file://' +Element('cc_pd_select_photo').value">
_
Javascript kód
<script type="text/javascript">
ccPeopleFullAddPlugin.prototype._photoUpload = function()
{
this.DOM.personalPhotoFileMoz = document.getElementById
('cc_pd_select_photo');
if (this.DOM.personalPhotoFileMoz.value != '' && !is_ie)
{
var nodes;
var form, frame, old_frame;
if (!this.DOM.personalPhotoFrame)
{
this.DOM.personalPhotoFrame = document.createElement('iframe');
this.DOM.personalPhotoFrame.id =
'cc_photo_frame';
this.DOM.personalPhotoFrame.style.visibility = 'hidden';
this.DOM.personalPhotoFrame.style.top = '0px';
this.DOM.personalPhotoFrame.style.left = '0px';
this.DOM.personalPhotoFrame.style.position = 'absolute';
document.body.appendChild(this.DOM.personalPhotoFrame);
}
form = this.DOM.personalPhotoFrame.contentDocument.createElement('form');
form.id = 'cc_form_photo';
form.method = 'POST';
form.enctype = 'multipart/form-data';
this.DOM.personalPhotoFrame.contentDocument.body.appendChild(form);
form.action = this.postPhotoURL+(this.entryID ? this.entryID : '');
var input_clone = this.DOM.personalPhotoFileMoz.cloneNode(false);
form.appendChild(input_clone);
form.submit();
}
}
</script>
Zdroj: sourceforge.net
Licence: LGPL
Syntax Error od Jakub Vrána
22.11.2005 #Až na tu Syntax Error způsobenou nějakým "chytrým" doplňovačem odkazů. Po Copy-Paste by neškodilo to alespoň vyzkoušet.
od Jorge
22.11.2005 #Nemohl bys sprovoznit demo pokousim se tento skript rozchodit, ale nejde mi to. Nebo aspon uvest funkcni zdrojovy kod, ktery by byl ke stazeni a mohli bysme jej hned otestovat.
Dekuji moc
od DiGi
22.11.2005 #jen to vypada, ze to tak funguje jen s English (US) nastavenim, v "Cesky" se to chova uplne stejne. Take sem si vsiml, ze ten "Autosave" take funguje pouze v English (US), stejne tak definice Uctu pro psani mailu s jinym FROM... Jsou to sycaci!

Chybka od Tomáš Kučera
22.11.2005 #Mala poznamka: u ukazky HTML kodu se v IE smrstuje ten zluty prouzek.
Takze nejde precist.
Re: Upload přes AJAX od Llaik
23.11.2005 #A je nutne ten input.file duplikovat? Napada me reseni i bez jeho duplikace, ale nejsem dost genialni na to, abych si nasel cas to zkusit.
od TroN
23.11.2005 #O nedávném zjištění díry v gmailu napsat nechceš?
Re: Upload přes AJAX od Lukyer
21.11.2007 #Zdravim, ctu vas blog a zajimal by me, jestli byste nemel nejake reseni pro tenhle problem... Jde o to, ze pomoci ajaxu, konkretne ajax.gets umim zjitit obsah jakehokoliv textoveho souboru. Jenze ja bych potreboval precist, nejak zakodovat a posleze rozkodovat obsah binarniho souboru. Proste aby po pouziti ajax.gets("soubor.mp4") se zakodoval obsah do textu a slo s nim dale manipulovat (ulozeni pres php do souboru atd) , ale aby byl soubor zpetne dekodovatelny.
Jestli vite zdali je tento problem resitelny, prosim ozvete se.
Diky predem