我成功地创建了一个文件上传系统,它基本上是将文件复制到特定文件夹并将数据库保存在其位置。现在我需要有关下载部分的帮助。想象一下,我的文件位置是: Files / 1306242602661_file1.exe ,在我看来我有这个:
<g:link controller="fileManager" action="downloadFile">
Download</g:link><br>
我需要有关downloadFile控制器的帮助。考虑到我的文件名是一个字符串,你能否给我一个关于如何做到这一点的提示:
String fileName =“Files / 1306242602661_file1.exe”
答案 0 :(得分:16)
在您的控制器中创建包含以下内容的下载操作:
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
答案 1 :(得分:6)
您可以渲染文件。见http://grails.org/doc/2.4.x/ref/Controllers/render.html
render file: new File ("path/to/file.pdf"), fileName: 'myPdfFile.pdf'