2012-01-31 151 views
1

我在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数据库

任何帮助吗?

回答

1

你可以使用内存中的文件系统:

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSe9cbe5cf462523a0-70e2363b121825b20e7-8000.html#WSe9cbe5cf462523a0-540771bc12182683461-8000

<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#" />) 
+0

Ben的建议是一个很好的,但我没不要确定您是否期望cfimage标签为您做一些工作,而不是简单地读取二进制数据。如果你这样做,那么我的回答会有帮助。 – 2012-01-31 19:31:34

+0

我会检查这个,谢谢 – user1181110 2012-01-31 19:39:26

0
ToBinary('#yourString#') 

计算Base64编码的数据

的二进制表示