5

cfpdf 可以直接读取二进制数据库列吗?

我目前在运行查询以获取该列的地方拥有它。

使用 cffile 将文件写入目录

然后用 cfpdf 阅读,这样我就可以提取文本了。

是否可以在没有 cffile 直接写入和读取二进制文件的情况下执行此操作?

如果是这样,我可以举个例子吗?

4

3 回答 3

3

你用的是什么版本?以下内容适用于我的 CF9 / MS SQL(varbinary 列)

<cfquery name="getPdf" ....>
    SELECT Data 
    FROM   someTable
    WHERE  ID = 123
</cfquery>

<cfset pdfBinary = getPdf.data[1]>
<cfpdf action="extractText" source="pdfBinary" name="result">
<cfdump var="#result#">

编辑:queryName.columnName为了澄清,当您用作“源”时,cfpdf 会抱怨。我怀疑 cfpdf 将其视为查询列对象,而不是自动获取查询第一行中的值,即queryName.columnName[ 1 ]. 解决方法是创建对它的引用,并改用其他变量。

于 2012-05-21T21:18:27.383 回答
1

我不是 100% 确定,但你应该能够做这样的事情:

<cfset myPDF = binaryEncode(binaryData,'base64')>

<cfpdf action="read" source="myPDF" name="PDFObj">
于 2012-05-21T19:15:11.530 回答
0

我找到了一个简单的方法来做到这一点:

<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">

这已经在我继承的代码中,但它从来没有工作过。我发现问题是数据源而不是代码;它没有设置为接受 BLOB。

于 2012-06-21T22:38:56.850 回答