我有一张名为file
的地图我从我的控制器接收,其中包含存储在assets / myfiles / file.pdf中的文件的路径和说明,格式如下:
{"filepath": "file.pdf",
"description": "something"}
如何在GSP页面中创建指向此pdf的链接?
<a href="${resource(dir: 'myfiles', file:' ${file[filename])' }" target="_blank">${file[description]}</a>
我尝试了上述内容,但它没有打开pdf,只是应用程序的另一个克隆选项卡
答案 0 :(得分:1)
创建控制器方法并编写连接以下载文件。
<强> GSP:强>
编写按钮并创建一个链接到此控制器操作在您的GSP中,如下所示。
<g:link class="btn btn-info btn-sm"
action="downloadMyFile" resource="${instance}"
target="_blank">DOWNLOAD FILE</g:link>
<强>控制器:强>
// This is Used To Open PDF File.
def downloadMyFile(){
def file = new File("download/path/to/your/file")
response.setContentType("application/pdf")
response.setHeader("Content-disposition", "filename=${file.getName()}")
response.outputStream << file.newInputStream()
}
[OR]
// This is Simply Download Your File.
def downloadFile(){
def file = new File("Path/to/your/File")
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "filename=${file.getName()}")
response.outputStream << file.newInputStream()
}
注意:
资源:您可以将Instance传递给您的下载操作
target =“_ blank”:在新标签页中打开/下载文件。
action:Controller中定义的操作名称。