【问题标题】:Rendering PDF from controller to view in Grails从控制器渲染 PDF 以在 Grails 中查看
【发布时间】:2017-06-14 14:58:47
【问题描述】:

我正在尝试将 pdf 文档从我的控制器传递给我的视图,

我使用的渲染方法看起来像:

        render (file: new File (result), fileName:"test.pdf", contentType:"application/pdf" )

结果是:“file:///D:/TempPartage/test.pdf” 问题是我得到了当前的异常:

无法确定文件的内容类型:test.pdf。堆栈跟踪如下: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException:无法确定文件的内容类型:test.pdf 在 fr.mma.usage.EditionintercalaireController$$EQMXBXRn.copierPDF(EditionintercalaireController.groovy:154) 在 grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195) 在 grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) 在 fr.mma.use.logging.filter.HttpLoggingFilter.doFilter(HttpLoggingFilter.java:69) 在 fr.mma.souse.authentication.AnnuaireCredentialCheckerFilter.doFilter(AnnuaireCredentialCheckerFilter.groovy:84) 在 fr.mma.souse.security.mock.MockAuthenticationFilter.doFilter(MockAuthenticationFilter.groovy:60) 在 org.togglz.servlet.TogglzFilter.doFilter(TogglzFilter.java:100) 在 fr.mma.use.navigation.NexturlValidationFilter.doFilter(NexturlValidationFilter.groovy:52) 在 fr.mma.use.requestid.RequestIdFilter.doFilter(RequestIdFilter.groovy:38) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:722)

我做错了什么? 感谢您的帮助

【问题讨论】:

    标签: pdf grails groovy


    【解决方案1】:

    "file:///D:/TempPartage/test.pdf" 看起来像 URL 而不是文件路径

    两种变体:

    render (
        file: new URL(result).openStream(), //file could be stream
        fileName:"test.pdf", 
        contentType:"application/pdf" 
    )
    

    render (
        file: new File( new URL(result).toURI().getPath() ), 
        fileName:"test.pdf", 
        contentType:"application/pdf" 
    )
    

    【讨论】:

    • Thx 它可以很好地呈现这个文件,但是现在如何得到这个错误:java.lang.IllegalStateException: getOutputStream() 已经被调用了这个响应,有时如果我双击它不会出现
    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2012-09-13
    • 2017-07-16
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多