2009-03-05 13 views
6

Tworzę webapplication użyciu Grails, który wykorzystuje wiele ajax.I chcą wprowadzić przesyłać za pomocą pliku ajax.I nie wiem jak używać ajax do pliku upload.My próbki kodu GSP jest:Zdalne przesyłanie plików w Grails

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

</div> 

Próbowałem z. I.Po załadowaniu chcę zaktualizować "updateArea" z wynikiem.W wyniku mam zamiar pokazać szczegóły przesłanego pliku.

+0

Spójrz na [to] (http://stackoverflow.com/a/27602218/2835520) odpowiedź – IgniteCoders

Odpowiedz

3

Załadowanie pliku przez Ajax nie jest możliwe. Nadal możesz przesłać plik w tle za pomocą ukrytego elementu iframe i albo ocenić repsonse (który znajduje się wewnątrz iframe), albo wywołać inne wywołanie ajax po zakończeniu przesyłania.

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

Innym rozwiązaniem jest zastosowanie do lampy na podstawie mechanizm przesyłania (np. swfupload) zamiast ramka.

+0

Hi Siegfried Puchbauer.I próbował swoją answer.But iframe nie działa w Firefoksie i IE browsers.I starałem się z google chrome browser.It pracy.Jak to działa w IE i Firefox? – DonX

+0

Witam. Przepraszam, to był błąd. Zwykle musisz zdefiniować atrybut nazwy elementu iframe, a nie atrybut id, tak jak zrobiłam to niezamierzenie. Pozdrawiam –

+0

Wielkie dzięki za odpowiedzi i szybką odpowiedź.Teraz rozwiązany problem. – DonX