我想在grails中上傳一個文件,然後處理從上傳返回的json響應,但我沒有太大的成功。我的看法是這樣的:Grails文件上傳JSON響應
<script type="text/javascript">
function addData(e) {
alert('adding data');
}
</script>
<g:form name="upload-form" url="[controller: 'dataset', action:'handleUpload']"
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="addData"></iframe>
而且在我的控制器我有
def handleUpload() {
def file = request.getFile('myFile')
def result
// do some fileprocessing to create the result
render results as JSON
}
但是,當我提交表單,瀏覽器只是提示我下載了JSON響應。我也嘗試過使用formRemote,但是request.getFile似乎對formRemote不是有效的。
我需要做些什麼才能讓addData
方法被json響應調用?
Ernesto,我改變了它,它確實渲染json到iframe,但我似乎仍然無法回調addData JavaScript方法工作 – 2012-04-13 21:25:15
也在Firefox上它仍然嘗試下載json文件,而不是將其渲染到框架(儘管呈現在鑲邊上的框架) – 2012-04-13 21:28:06