grails文件下载

问题描述

| 我成功地制作了一个文件上传系统,该系统基本上是将文件复制到特定的文件夹并保存在数据库中。现在我需要下载部分的帮助。想象一下我的文件位置是:Files / 1306242602661_file1.exe,在我看来,我有以下位置:
<g:link controller=\"fileManager\" action=\"downloadFile\">
     Download</g:link><br>
我需要有关downloadFile控制器的帮助。考虑到我的文件名是一个字符串,能否请您给我一个有关如何执行此操作的提示: 字符串fileName = \“ Files / 1306242602661_file1.exe \”     

解决方法

在控制器内,创建具有以下内容的下载操作:
def file = new File(\"path/to/file\")

if (file.exists()) {
   response.setContentType(\"application/octet-stream\")
   response.setHeader(\"Content-disposition\",\"filename=${file.name}\")
   response.outputStream << file.bytes
   return
}
// else for err message
    ,您可以渲染文件。参见http://grails.org/doc/2.4.x/ref/Controllers/render.html
render file: new File (\"path/to/file.pdf\"),fileName: \'myPdfFile.pdf\'