我有以下代码:
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'但结果是一样的。
答案 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