我正在尝试使用Grails下载文件。我已经在此站点上遵循了一些解决方案,并且我认为文件已从contoller正确传回。当我检查传递回的数据时,我可以看到文件的内容。
但是下载没有开始。我不确定客户端应该是什么。
我正在使用jquery调用此contoller Action 。
File fd = new File(filename)
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment; filename= ${fd.getName()}")
response.outputStream << fd.newInputStream()
response.outputStream.flush()
这是jQuery 9我需要将文件名作为参数:
jQuery.ajax({
url : "/dev/image/download",
type : "GET",
data : {
image : imgData
}
});
我不确定从这里走什么路。我看到的大多数示例仅涉及contoller方面。我不确定客户端应该如何配置。
请您参考如下方法:
与其通过AJAX请求调用下载,不如创建指向它的链接。看看是否有帮助。
<g:link action="download" id="1" params="[...]">download</g:link>
您可以将参数传递到链接中,但是,如果您的参数是在javascript中创建的,则您仍然可以发送参数,但是可以采用其他方法。
看看 Igor和 this的这篇文章




