Come faccio a importare / caricare file con jQuery AJAX?
2 risposta
- voti
-
- 2012-11-01
Non hoprovatomapenso che sianecessario aggiungere l'oggetto
FormData
direttamente comeparametrodata
.Qualcosa di similevar ajaxData = new FormData(); ajaxData.append( 'action', 'ajax_handler_import' ); ajaxData.append( '_ajax_nonce', importNonce ); // or maybe skip the nonce for now jQuery.each($('#fileImportData')[0].files, function(i, file) { ajaxData.append('file-'+i, file); });
Il resto del codice va così com'è
I haven't tried but i think you need to add
FormData
object directly asdata
parameter. Something like thisvar ajaxData = new FormData(); ajaxData.append( 'action', 'ajax_handler_import' ); ajaxData.append( '_ajax_nonce', importNonce ); // or maybe skip the nonce for now jQuery.each($('#fileImportData')[0].files, function(i, file) { ajaxData.append('file-'+i, file); });
The rest of your code goes as it is
-
Scusa senon ho rispostoprima ... stavo cercando difinire unprogettoe hopensato che sareitornato quando avròpiù conoscenza sull'argomento.Grazieper averfornito la soluzione,non sapevo che l'aggiunta dell'oggetto FormData a un oggetto lo avrebbe rovinatoe stavoesaurendo leidee.Figure sarebbe un sempliceproblema xP.La lezione appresa qui: stare lontano da oggettimisti.Sorry I haven't replied sooner...I was trying to finish out a project, and figured I'd come back when I have more knowledge on the subject. Thanks for providing the solution, I didn't know adding the FormData object to an object would mess it up, and I was running out of ideas. Figures it would be a simple problem xP. The lesson learned here: stay away from mixed objects.
- 0
- 2012-12-01
- EkoJR
-
Pernonparlare di questononfunzionerà su IE9e versioniprecedenti di IE.Not to mention this won't work on IE9 and below IE versions.
- 0
- 2015-11-03
- Arda
-
- 2012-11-01
Ajaxin sensotradizionale è XMLHttpRequest,chenon consente di codificaree inviarefile locali a un server.
Ilmodopiù comunepereseguireil caricamentotramitemezzi "ajax" consistenell'usare unfile swf Flashpergestireil caricamento sulla stessapagina o utilizzare unmodulo che abbia come destinazione uniframe 1x1invisibile.
Ecco una domandamolto simile con una buona risposta per vedere comepuoifarlo
Ajax in the traditional sense is XMLHttpRequest, which does not allow you encode and send local files to a server.
The common ways of doing uploading through "ajax" means, is to either use a Flash swf to handle the uploading on the same page, or to use a form that has a target of an invisible 1x1 iframe.
Here is a very similar question with a good answer to see how you can do that
-
Sì,hopassato quella sessione di domande/risposte di recente.Sfortunatamente,non hofamiliarità con Flashe ho cercato dievitare di aggiungereplug-in,sepossibile.Hoprovatoprincipalmente a seguireilmetodo Ajax di WordPress,ma da quello che hotrovato,il solopassaggio ad ajax è limitato/limitato daibrowser.Il riferimentoprincipale a questo [Q/A] (http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously-with-jquery)mi haportato a [FormData Objects] (https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects) che dice che èpossibile seilbrowser utilizzato lo ha.Yea, I was going through that Q/A recently. Unfortunately, I'm not familiar with flash, and I've been trying to avoid adding plugins if at all possible. I've mainly been trying to follow WordPress Ajax method, but by what I've found, just passing it to ajax is restricted/limited by the browsers. Mainly refering to this [Q/A](http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously-with-jquery) led me to [FormData Objects](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects) which says is possible if the browser used has it.
- 0
- 2012-11-02
- EkoJR
-
Risulta chepuoi usarei tuoimetodiperpassarei dati delfile a unafunzione AJAXinvece difare affidamento su unplugin JS.Per lamaggiorparte,FormData Objects (comemenzionato sopra),gestisce questo con le operazioni XMLHttpRequest Livello 2 (come lointendo attualmente)ed è supportato datuttii principalibrowser ora.Hopensato che sarebbe stata una questione ditempo dopo l'uscita di HTML5.Tuttavia,l'utilizzo diplUpload è unapossibile raccomandazioneperi dati difile digrandi dimensioni.It turns out that you can use your own methods for passing file data over to an AJAX function instead of relying on a JS plugin. For the most part, FormData Objects (as mentioned above), handles this with XMLHttpRequest Level 2 operations (as I currently understand it), and is supported by all major browsers now. I figured it would be a matter of time after HTML5 came out. However, using plUpload is a possible recommendation for large file data.
- 0
- 2012-12-01
- EkoJR
Continuo a riscontrare unproblema duranteil recupero deifile aggiuntiin AJAXin modo che lafunzione ajax del serverpossaelaborarei dati. Comepossofarein modo che $ _FILES vengapassato allo stessomodo dell'azionepredefinita (incorporataneglielementi delmodulo)?
Modulo HTML
<"JavaScript"
Server/gestore PHP