将blob图片保存到数据库而不存储到hd
问题描述:
我在Coldfusion中有一个base64图片字符串。将blob图片保存到数据库而不存储到hd
如何将此图像blob保存到数据库中而不存储到filedisk? 我的功能。
<cfset base64string="base64picturestring">
<cfimage source="#ImageReadBase64("data:image/png;base64,#base64string#")#"
destination="c:\picture.png" action="write" overwrite="true">
<cffile action="readbinary" file="c:\picture.png" variable="ImageData"/>
INSERT INTO imagedb (imageblob)
VALUES (<cfqueryparam cfsqltype="cf_sql_blob" value="#ImageData#" />)
但我不想将图像保存在硬盘上。 我需要这个。
的base64 ---- ---- imageblob数据库
任何帮助吗?
答
你可以使用内存中的文件系统:
<cfset base64string="base64picturestring">
<cfimage source="#ImageReadBase64("data:image/png;base64,#base64string#")#"
destination="ram://src/picture.png" action="write" overwrite="true">
<cffile action="readbinary" file="ram://src/picture.png" variable="ImageData"/>
<cffile action="delete" source = "ram://src/picture.png">
INSERT INTO imagedb (imageblob)
VALUES (<cfqueryparam cfsqltype="cf_sql_blob" value="#ImageData#" />)
答
ToBinary('#yourString#')
计算Base64编码的数据
的二进制表示
Ben的建议是一个很好的,但我没不要确定您是否期望cfimage标签为您做一些工作,而不是简单地读取二进制数据。如果你这样做,那么我的回答会有帮助。 – 2012-01-31 19:31:34
我会检查这个,谢谢 – user1181110 2012-01-31 19:39:26