Non voglio usare jQuery, ma mi piacerebbe usare Ajax per caricare file. È possibile?È possibile utilizzare Ajax per caricare file?
Se sì, dove posso trovare informazioni/tutorial su di esso?
Non voglio usare jQuery, ma mi piacerebbe usare Ajax per caricare file. È possibile?È possibile utilizzare Ajax per caricare file?
Se sì, dove posso trovare informazioni/tutorial su di esso?
No, non è possibile farlo con javascript.
Per conferire la sensazione "AJAX", tuttavia, è possibile inviare un modulo a un iframe nascosto e generare i risultati dello script su di esso, quindi elaborare da lì. Google ajax iframe upload
e iniziare da lì.
Se si utilizza jQuery, è disponibile anche lo Form plugin
che creerà automaticamente questo iframe se il modulo contiene campi di file. Non l'ho usato per farlo, ma ho sentito cose buone.
Come indicato nei commenti, è anche possibile utilizzare qualcosa come il molto popolare SWFUpload
per ottenere l'effetto desiderato con Flash.
Non l'ho usato personalmente, ma lo Ajax Uploader è un componente che ho trovato di recente che dice che può fare upload di file all'interno di un UpdatePanel (presumendo che tu stia usando ASP.NET).
Ecco un po 'di dettagli su come gmail fa, utilizzando un iframe:
io uso swfupload per upload multipli ajax-like (il suo javascript/basato su flash)
im giù, im solo un po 'come un stickler sul reinventare la ruota e farlo da solo, almeno la prima volta. so che è stupido, ma sono solo il tipo di persona che ha bisogno di farlo;) – johnnietheblack
Non è stupido! in realtà è fantastico. L'unico modo per imparare. E la parte divertente è imparare. ;) –
Rigorosamente parlando ci sono possibilità di fare real AJAX file uploads, ma questo è possibile solo in Firefox 3+, Safari 4 e Chrome 2. In tutti gli altri browser è necessario utilizzare una soluzione alternativa come la tecnica iframe o un uploader basato su Flash.
Supponendo che si stia utilizzando Java, la versione 3.0 del DWR (attualmente in RC1) supporta il caricamento/download di file binari, il che rende il problema banalmente semplice. Non ho ancora avuto la possibilità di provarlo ma usiamo il DWR ampiamente con successo totale; è un ottimo toolkit Ajax.
http://directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html
Incase qualcuno sta trovando questa domanda molto più tardi: sì questo è possibile con JavaScript ora.
HTML5 ha definito 2 nuove API che è possibile utilizzare insieme per eseguire questa operazione: Trascina e rilascia API e File API. È possibile utilizzare jQuery per interagire con le API in modo efficace consentendo alle persone di trascinare e rilasciare i file per il caricamento.
Ecco a tutorial su come farlo.
Il codice funziona attualmente in Chrome 6+ e Firefox 3.6+, Safari 6 e IE 10. Se è necessario il supporto per Safari 5, il codice rimane quasi identico ma si utilizza invece l'oggetto FormData per l'elenco di file caricato (maggiori informazioni nel post).
Opera supporta le API File partire dal 11, ma non l'API DnD, l'operazione di caduta non avvia il caricamento, ma il supporto si ottenere l'accesso al file con l'API. Immagino che a 12 anni finiranno il supporto per l'API DnD.
01-20-14 Aggiornamento: tutti i principali browser implementano tutte le API standard ora, quindi questo tutorial funziona su tutti i browser.
Grazie dal futuro. (2020) –
Questa [risposta] (http://stackoverflow.com/a/27602218/2835520) mostra come farlo senza jQuery – IgniteCoders