【发布时间】:2014-10-10 17:08:07
【问题描述】:
所以我将 PDF blob 保存在数据库中并尝试检索它并将其显示在页面上。当我在 Coldfusion 10 上运行代码时,它按预期运行。但是,当我将相同的确切代码移至 Railo 4.2.1.0 时,出现错误。
我很好奇是否可以将二进制数据传递到 Railo 中的 CFPDF Source 标签。如果没有,有人知道一个好的解决方法吗?
当我运行转储时,pdfBinary 数据中确实包含正确的二进制信息。
谢谢
代码:
<cfset tcpInformation = dataPopulatorController.getTCPInformation(session.requestID, session.personID) />
<cfset pdfBinary = tcpInformation.file_content[1]>
<cfpdf action="read" source="pdfBinary" name="TCPDocument">
<cfheader name="Content-Disposition" value="filename=TCP.pdf" />
<cfcontent type="application/pdf" variable="#toBinary(TCPDocument)#" />
我在 Railo 上遇到的错误:
发生的错误 /****/tcpviewer.cfm:第 7 行 5: 6: 7: 8: 9:
Java Stacktrace 文件或目录 pdfBinary 不存在 在 railo.commons.io.res.util.ResourceUtil.toResourceExisting(ResourceUtil.java:199):199 在 railo.commons.io.res.util.ResourceUtil.toResourceExisting(ResourceUtil.java:164):164 在 railo.runtime.tag.PDF.toPDFDocument(PDF.java:1207):1207 在 railo.runtime.tag.PDF.doActionRead(PDF.java:1033):1033 在 railo.runtime.tag.PDF.doEndTag(PDF.java:568):568 在 onboarding.views.tcpviewer_cfm$cf.call(/onboarding/views/tcpviewer.cfm:7):7 在 railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:913):913 在 railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:865):865 在 railo.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:206):206 在 railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:18):18 在 railo.runtime.PageContextImpl.execute(PageContextImpl.java:2218):2218 在 railo.runtime.PageContextImpl.execute(PageContextImpl.java:2185):2185 在 railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:332):332 在 railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:29):29 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728):728 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305):305 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222):222 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123):123 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472):472 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171):171 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99):99 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947):947 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118):118 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408):408 在 org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200):200 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589):589 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310):310 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源):-1 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源):-1 在 java.lang.Thread.run(Unknown Source):-1
【问题讨论】:
-
cfpdf action="read" 的目的是什么?你应该可以直接使用二进制文件
<cfcontent type="application/pdf" variable="#pdfBinary#" />
标签: coldfusion railo cfpdf