2009-03-05 40 views
6

Tôi đang tạo một ứng dụng web bằng cách sử dụng grails sử dụng rất nhiều ajax.I muốn thực hiện tải lên tệp bằng ajax.I không biết cách sử dụng ajax cho tệp tải lên.Mẫu mẫu GSP là:Tải tập tin từ xa vào grails

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

</div> 

Tôi đã thử với và .Sau khi tải lên, tôi muốn cập nhật 'updateArea' với kết quả.Trong kết quả tôi đang lên kế hoạch hiển thị chi tiết của tệp đã tải lên.

+0

Hãy xem tới [này] (http://stackoverflow.com/a/27602218/2835520) câu trả lời – IgniteCoders

Trả lời

3

Tải lên tệp qua Ajax không thực sự khả thi. Bạn vẫn có thể tải lên một tệp ở chế độ nền bằng cách sử dụng khung nội tuyến ẩn và đánh giá phần trả lại (sau đó nằm trong khung nội tuyến) hoặc kích hoạt cuộc gọi ajax khác sau khi quá trình tải lên hoàn tất.

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

Tùy chọn khác là sử dụng cơ chế tải lên dựa trên flash (ví dụ: swfupload) thay vì khung nội tuyến.

+0

Hi Siegfried Puchbauer.I thử iframe answer.But của bạn không hoạt động trong mozilla firefox và Trình duyệt IE.I đã thử với trình duyệt google chrome.It đang làm việc. Làm thế nào để thực hiện công việc này trong IE và firefox? – DonX

+0

Xin chào. Xin lỗi, đây là lỗi đánh máy. Thông thường, bạn phải xác định thuộc tính name của iframe, không phải thuộc tính id như tôi đã vô ý làm. Chúc mừng –

+0

Cảm ơn rất nhiều câu trả lời và phản hồi nhanh chóng.Những vấn đề được giải quyết. – DonX

Các vấn đề liên quan