下载grails中的jasper文件

时间:2013-02-19 08:42:19

标签: grails download

我有以下代码:

response.contentType = "application/octet-stream"
response.setContentLength(templateFile.bytes.length)
response.setHeader("Content-disposition", "attachment;filename=${fileName}")
IOUtils.copy(templateFile,response.outputStream)

其中templateFile是Jasper Report模板(* .jrxml)。 我总是得到net :: ERR_FILE_NOT_FOUND。 对于不同的文件类型,此代码可以正常工作。

我也试过内容类型'text / xml'但结果是一样的。

2 个答案:

答案 0 :(得分:1)

在outputStream上调用flush()后问题解决了。运算符<<在没有IOUtils.copy的情况下隐式执行此操作。

答案 1 :(得分:0)

尝试使用response.setContentLength()设置数据的长度。此外,您可以调试以查看文件的字节是否在response.outputStream

以下是适用于我的代码段:

byte[] bytes = getBytesOfFile()
response.setContentType("application/octet-stream")
response.setContentLength(bytes.length)
response.outputStream << bytes