2009-03-05 11 views
6

ich eine Webapplikation mit Grails bin zu schaffen, die viel ajax.I verwendet wollen Datei-Upload implementieren mit ajax.I weiß nicht, wie Ajax zu verwenden, für die Datei upload.My Probe GSP-Code ist:Remote File Upload in Grails

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

</div> 

Ich versuchte mit und .Nach dem Hochladen möchte ich die 'updateArea' mit dem Ergebnis aktualisieren.Im Ergebnis plane ich Details der hochgeladenen Datei anzuzeigen.

+0

Werfen Sie einen Blick auf [diese] (http://stackoverflow.com/a/27602218/2835520) Antwort – IgniteCoders

Antwort

3

Das Hochladen einer Datei über Ajax ist nicht wirklich möglich. Sie können weiterhin eine Datei im Hintergrund mit einem versteckten iFrame hochladen und entweder die Antwort (die sich dann innerhalb des Iframes befindet) auswerten oder einen weiteren Ajax-Anruf nach dem Hochladen auslösen.

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

Eine weitere Option ist ein Flash-basierten Upload-Mechanismus zu verwenden (zB. swfupload) anstelle des iframe.

+0

Hallo Siegfried Puchbauer.I Ihre answer.But iframe versuchte, nicht in mozilla firefox funktioniert und IE Browser.Ich habe versucht mit Google Chrome Browser.Es funktioniert. Wie funktioniert dies in IE und Firefox? – DonX

+0

Hallo. Entschuldigung, das war ein Tippfehler. Normalerweise müssen Sie das name-Attribut des iframe definieren, nicht das id-Attribut, wie ich es unbeabsichtigt getan habe. Prost –

+0

Vielen Dank für Antworten und schnelle Antwort. Jetzt Problem gelöst. – DonX