我只想使用ColdFusion将文件上传到我的数据库。我理解如何将图像上传到目录,但我想将其直接放在数据库中。
我已将数据库字段设置为varbinary(MAX)以接受图像并具有插入它的存储过程。目前,我将图像上传到我的文件系统的代码是:
<cfif isdefined("form.FileUploadImage")>
<cffile action="upload" filefield="FileUploadImage" destination="#uploadfolder#" nameconflict="overwrite" accept="image/*" >
</cfif>
我显然已经留下了一些支持代码,但我真正需要做的就是获取存储在内存中的文件的二进制表示,而不是文件系统。
那里有哪些专家可以提供帮助?
谢谢, 乔治
答案 0 :(得分:6)
这样的东西?
<cfquery>
INSERT INTO Image (Jpg)
VALUES (
<cfqueryparam CFSQLType="CF_SQL_BLOB"
value="#ToBase64(FileReadBinary(uploadedFilePath))#">
</cfquery>
稍后,如果您想将图像流式传输回浏览器,请使用<cfimage>
(CF8 +)
答案 1 :(得分:4)
绕过保存文件到文件系统的方法:
<cfqueryparam cfsqltype="cf_sql_blob"
value="#FileReadBinary(FORM.FileUploadImage)#">