我試圖使用Coldfusion將從表單上載的文件(pdf或圖像)保存到MySQL數據庫中。我將文件保存爲二進制數據到列設置爲BLOB的數據庫中,但無法將文件寫回到屏幕。在Coldfusion中保存文件然後檢索文件的正確方法是什麼?注意:客戶希望文件存儲在數據庫中而不是文件系統中。使用Coldfusion在MySQL中保存文件
文件保存在數據庫代碼
<cffile action="upload" filefield="form.file_upload" destination="#fileDirectory#" result="file_result" nameconflict="makeunique">
<cfif #file_result.fileWasSaved# IS 'Yes'>
<cfset title = Evaluate('form.file_title')>
<cffile action="readbinary" file="#fileDirectory#/#file_result.serverFile#" variable="file_binary_data">
<cfquery name="insertFile" datasource="#request.app.datasource#">
INSERT INTO (table) (form_id, file_name, file_info)
VALUES ('#form_id#', <cfqueryparam value="#title#" cfsqltype="CF_SQL_VARCHAR">, <cfqueryparam value="#file_binary_data#" cfsqltype="CF_SQL_BLOB">)
</cfquery>
寫入文件返回到畫面
<cfheader name="content-length" value="#ArrayLen(getFile.file_info)#" />
<cfheader name="content-disposition" value="inline; filename=#getFile.file_name#.gif" />
<cfcontent type="image/*" variable="#getFile.file_info#">
謝謝,增加MySQL中的緩衝區並更新Coldfusion中的dsn以接受BLOBs讓它工作! –