coldfusion 如何将pdf文件保存在数据库中并在浏览器中获取
coldfusion How to save pdf file in database and fetch it in browser
插入到 MS-SQL2008 数据库
<cffile action="READBINARY" file="#form.FileContents#" variable="binPDF">
<cfquery name="Uploaded" datasource="#cfbasedatasource#">
INSERT INTO UploadedFiles
(
AccountId,
Filecontent
)
VALUES
(
'#UrlAccountId#',
<cfqueryparam value='#binPDF#' cfsqltype='cf_sql_blob'>
)
</cfquery>
=========================
这是从数据库到浏览器的显示:
<cfset binaryData = #cfGetfilecontentquery.Filecontent[1]#>
<cfheader name="Content-Disposition" value="inline; filename=testDocument.pdf">
<cfcontent variable="#binarydata#" type="application/pdf" reset="yes" />
但是我只能在浏览器中看到"Fail to Load PDF Document"
你的代码原则上是正确的。确保 CF 管理中的设置允许 blob 数据——否则它可能会在数据库中被截断。不允许 BLOB 数据通过驱动程序是很典型的(默认情况下,DSN 设置中不允许)。如果你启用它,你应该很好。
我发布这个答案是为了让您可以根据评论(根据 Leigh 的建议)将其标记为正确。 :)
插入到 MS-SQL2008 数据库
<cffile action="READBINARY" file="#form.FileContents#" variable="binPDF">
<cfquery name="Uploaded" datasource="#cfbasedatasource#">
INSERT INTO UploadedFiles
(
AccountId,
Filecontent
)
VALUES
(
'#UrlAccountId#',
<cfqueryparam value='#binPDF#' cfsqltype='cf_sql_blob'>
)
</cfquery>
========================= 这是从数据库到浏览器的显示:
<cfset binaryData = #cfGetfilecontentquery.Filecontent[1]#>
<cfheader name="Content-Disposition" value="inline; filename=testDocument.pdf">
<cfcontent variable="#binarydata#" type="application/pdf" reset="yes" />
但是我只能在浏览器中看到"Fail to Load PDF Document"
你的代码原则上是正确的。确保 CF 管理中的设置允许 blob 数据——否则它可能会在数据库中被截断。不允许 BLOB 数据通过驱动程序是很典型的(默认情况下,DSN 设置中不允许)。如果你启用它,你应该很好。
我发布这个答案是为了让您可以根据评论(根据 Leigh 的建议)将其标记为正确。 :)