Grails文件上传json响应

时间:2012-04-13 19:54:09

标签: json grails file-upload

我正在尝试上传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无效。

使用json响应调用addData方法需要做什么?

2 个答案:

答案 0 :(得分:0)

当写入iframe时,对某些浏览器来说,它似乎需要写成文本或html,而不是json。

答案 1 :(得分:-1)

如果你想在handleUpload动作中返回JSON,你的返回(最后一行)必须是:

 render result as JSON

您还需要以下导入:

 import grails.converters.JSON