我想在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