在GSP页面中从变量路径名打开新窗口中的pdf文件

时间:2016-09-16 16:34:28

标签: html5 grails gsp

我有一张名为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,只是应用程序的另一个克隆选项卡

1 个答案:

答案 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中定义的操作名称。