jQuery Ajax File Upload

Posso usare il seguente codice jQuery per eseguire l'upload di file usando il metodo POST di una richiesta ajax?

$.ajax({
    type: "POST",
    timeout: 50000,
    url: url,
    data: dataString,
    success: function (data) {
        alert('success');
        return false;
    }
});

Se è possibile, devo riempire la parte data? È il modo corretto? Ho solo POSTato il file al lato server.

Ho cercato su Google, ma quello che ho trovato è un plugin mentre nel mio piano non voglio usarlo. Almeno per il momento.

Soluzione

l'upload di file non è possibile attraverso ajax. È possibile caricare file, senza rinfrescare la pagina utilizzando IFrame. puoi controllare ulteriori dettagli qui

AGGIORNAMENTO:

Con XHR2, il caricamento dei file tramite AJAX è supportato. Ad esempio attraverso l'oggetto FormData, ma purtroppo non è supportato da tutti/vecchi browser.

Il supporto FormData parte dalle seguenti versioni di browser desktop. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+

Per maggiori dettagli, vedi link MDN

Commentari (9)

Un caricamento AJAX è effettivamente possibile con XMLHttpRequest(). Non sono necessari iframe. Il progresso del caricamento può essere mostrato.

Per i dettagli vedere: Risposta https://stackoverflow.com/a/4943774/873282 alla domanda https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.

Commentari (1)
  • Usate un iframe nascosto e impostate il vostro modulo al nome dell'iframe. In questo modo, quando il modulo viene inviato, solo l'iframe verrà aggiornato.
  • Avere un gestore di eventi registrato per l'evento di caricamento dell'iframe per analizzare la risposta.

Maggiori dettagli sul mio post: http://blog.manki.in/2011/08/ajax-fie-upload.html.

Commentari (2)