Pregunta

Estoy creando una aplicación web usando griales que usa mucho ajax. Quiero implementar la carga de archivos usando ajax. No sé cómo usar ajax para cargar archivos. Mi código GSP de muestra es:

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

</div>

Intenté con y .Después de subirlo, quiero actualizar el 'updateArea' con el resultado. En consecuencia, estoy planeando mostrar detalles del archivo cargado.

¿Fue útil?

Solución

Cargar un archivo a través de Ajax no es realmente posible. Todavía puede cargar un archivo en segundo plano utilizando un iframe oculto y evaluar la respuesta (que se encuentra dentro del iframe) o disparar otra llamada ajax una vez completada la carga.

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

Otra opción es usar un mecanismo de carga basado en flash (por ejemplo, swfupload ) en lugar del iframe.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top