2015-10-13 51 views
2

插入取它MS-SQL 2008數據庫的ColdFusion如何保存PDF文件在數據庫和瀏覽器

<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" /> 

但我只能在瀏覽器中看到「無法加載PDF文件」

+0

哪個dbms? Filecontent列的數據類型是什麼?另外,您是否確認完整的二進制文件正在保存?如果將二進制文件寫入磁盤上的.pdf文件並在該文件中打開,會發生什麼情況。 – Leigh

+2

你的原則是正確的。確保CF管理員中的設置允許blob數據 - 否則它可能會在數據庫中被截斷。 –

+0

數據庫類型MS-sql 2008,字段類型是Varbinary(MAX) –

回答

4

你的代碼是在原則上是正確的。確保CF管理員中的設置允許blob數據 - 否則它可能會在數據庫中被截斷。通過驅動程序不允許BLOB數據是非常典型的(默認情況下,它不允許在DSN設置中使用)。如果你啓用它,你應該很好。


我在發佈這個答案,以便您可以根據評論(根據Leigh的建議)將其標記爲正確。 :)

相關問題