Domanda

Sto creando un'applicazione web usando grails che usano molto ajax. Voglio implementare il caricamento di file usando ajax. Non so come usare ajax per il caricamento di file. Il mio codice GSP di esempio è:

<!-- code for file upload form-->
<div id="updateArea">

</div>

Ho provato con e. Dopo il caricamento, voglio aggiornare "updateArea" con il risultato. Di conseguenza, sto pianificando di mostrare i dettagli del file caricato.

È stato utile?

Soluzione

Il caricamento di un file tramite Ajax non è realmente possibile. Puoi comunque caricare un file in background utilizzando un iframe nascosto e valutare la risposta (che è quindi all'interno dell'iframe) o eseguire un'altra chiamata ajax al termine del caricamento.

<g:form name="upload-form" action="upload" method="post" enctype="multipart/form-data" target="hidden-upload-frame">
    File: <input type="file" name="myFile" />
    <button type="submit">Upload</button>
</g:form>

<iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="onUploadComplete">
</iframe>

<script type="text/javascript">
    function onUploadComplete(e) {
        // Handle upload complete
        alert("upload complete");
        // Evaluate iframe content or fire another ajax call to get the details for the previously uploaded file
    }
</script>

Un'altra opzione è quella di utilizzare un meccanismo di caricamento basato su flash (ad es. swfupload ) invece dell'iframe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top