2009-02-12 18 views

risposta

40

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.

+0

È anche possibile utilizzare Flash. – Sampson

+0

ah, sì. Aggiunto questo. –

+0

Puoi anche usare Silverlight. – bendewey

0

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

2

io uso swfupload per upload multipli ajax-like (il suo javascript/basato su flash)

+0

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

+0

Non è stupido! in realtà è fantastico. L'unico modo per imparare. E la parte divertente è imparare. ;) –

1

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.

29

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.

+0

Grazie dal futuro. (2020) –

Problemi correlati