我正在尝试编写一个控制器来下载文件。 我的域类看起来像这样:
class File {
String fileName
Byte[] fileBytes
Long fileSize
String fileType
String fileDescription
...
...
}
我的控制器看起来像这样:
def downloadFile = {
def file = File.findById(params.id)
if (file != null)
{
response.setContentType(file.fileType)
response.setHeader("Content-disposition", "attachment;filename=\"${file.fileName}\"")
response.outputStream << file.fileBytes
return
}
}
没有错误,但这不起作用。谁能帮我弄清楚什么是错的?
谢谢!
答案 0 :(得分:0)
我很长一段时间都写了一些片段。
http://lalitagarw.blogspot.com/2014/03/grails-forcing-file-download.html
这可以帮到你。
但是,请尝试添加
response.outputStream << file.fileBytes
webRequest.renderView = false
并且无需返回。
答案 1 :(得分:0)
在末尾添加一个同花而不是返回:
response.outputStream.flush()