Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Upload in AJAX

  1. #1

    Upload in AJAX

    Ciao ragazzi, so che è un argomento molto richiesto, ma magari qualcosa si è mosso, o magari qualcosa mi è sfuggito..

    chiedo.. è possibile fare l' Upload tramite AJAX?, magari convertendo il file in un formato cosi da permettere l invio con chiamate ajax? cosi da avere la possibilità di mostrare subito un anteprima?

    e se si, sapete indicarmi una guida o altro, e sapete dirmi se è supportato da tutti i browser?


    grazie ragaz

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Hai ragione, e' un argomento molto popolare...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Uplod in puro ajax non è possibile perché ajax non ammette file binari ma stringhe
    B) Fare anteprime di immagini (senza upload) se ne già parlato sul forum (fai una ricerca) è possibile ma non è cross-browser


    P.S. Di script upload che fanno anteprime con nome del file e peso c'è da stancarsi in rete sicuro ne valga la pena d'impazzire?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Originariamente inviato da cavicchiandrea
    A) Uplod in puro ajax non è possibile perché ajax non ammette file binari ma stringhe
    B) Fare anteprime di immagini (senza upload) se ne già parlato sul forum (fai una ricerca) è possibile ma non è cross-browser


    P.S. Di script upload che fanno anteprime con nome del file e peso c'è da stancarsi in rete sicuro ne valga la pena d'impazzire?

    per pura curiosità.. quindi ditemi..

    Puro AJAX non è possibile.. allora esiste in finto AJAX? in IFRAME?, m al' IFRAME non è CRossbrowser?

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    È possibile l'upload in puro ajax (puoi persino scrivere tu via javascript il contenuto del file da inviare). Ma non ho idea di quanto sia crossbrowser. Da' una guardata qua:

    Ti conviene testare tu stesso sui vari browsers…

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Con questo è possibile.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da XWolverineX
    Con questo è possibile.
    Non è ajax puro, quello script fa uso di flash.

  8. #8
    Originariamente inviato da carlomarx
    È possibile l'upload in puro ajax (puoi persino scrivere tu via javascript il contenuto del file da inviare). Ma non ho idea di quanto sia crossbrowser. Da' una guardata qua:

    Ti conviene testare tu stesso sui vari browsers…
    credo siamo molto FIREFOX

  9. #9
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Avete fatto venire la curiosità anche a me… Provate un po' con questo codice:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Upload via ajax</title>
    <script type="text/javascript">
    function switchXHRState () {
    	switch (this.readyState) {
    		case 0: console.log("open() has not been called yet."); break;
    		case 1: console.log("send() has not been called yet."); break;
    		case 2: console.log("send() has been called, headers and status are available."); break;
    		case 3: console.log("Downloading, responseText holds the partial data."); break;
    		case 4: console.log("Complete!"); alert(this.responseText);
    	}
    }
    
    function ajaxPost (oForm) {
    	if (!window.FormData) { return true; }
    	var oReq = new XMLHttpRequest();
    	// Upload via ajax supportato; tolgo ?noajax=1 dall'attributo action
    	oReq.open("POST", oForm.getAttribute("action").replace(/\?.*$/, ""), true);
    	oReq.onreadystatechange = switchXHRState;
    	oReq.send(new FormData(oForm));
    	return false;
    }
    </script>
    </head>
    <body>
    <form name="mioForm" action="invio.php?noajax=1" target="_blank" method="post" enctype="multipart/form-data" onsubmit="return ajaxPost(this);">
    	
    
    <input type="file" name="mioFile" />
    
    	<input type="text" name="mioText" value="testo di prova">
    
    	<input type="submit" value="Invia"></p>
    </form>
    
    </body>
    </html>
    Il nodo centrale della questione è il costruttore FormData, che dovrebbe funzionare su IE a partire dalla versione 10. Il resto è comunissimo javascript...
    In ogni caso lo script è costruito in maniera tale che se FormData non è supportato viene aggiunta la stringa "?noajax=1" all'action del form e questo viene inviato comunque in una nuova finestra/scheda (di modo da consentire comunque di non abbandonare la pagina).

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da BOES
    credo siamo molto FIREFOX
    Può darsi che sia ancora scarsamente supportato, ma non è "firefox": si tratta di standard w3c.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.