Cache数据库的M语言之把图片转成Base64
2015-10-13 11:53
501 查看
有业务需求把图片存起来,又不能让人随意看到,不能存成图片文件,就用方法转成base64位字符,可以直接显示在界面上,也可存入数据库,
/// 把图片转成base64
新建一img2basetest.csp代码如下:
图片转成base64字符串后, 所占内存比以前还要大,3个字节变4个字节。
如果存到数据库,还是很占空间。
/// 把图片转成base64
ClassMethod Img2Base64(path) { set img = ##class(%FileBinaryStream).%New() set img.Filename = $g(path) set byteList = img.Read(12288) ;要为3的倍数,这样补0才不会出问题. 12288 =3*4*1024,12k set count=0 while(byteList'=""){ w ##class(%SYSTEM.Encryption).Base64Encode(byteList) s count=count+1 set byteList = "" set byteList = img.Read(12288) // 读字节流,再通过系统方法把字节转成Base64字符串 } do img.%Close() set img="" q "" }
新建一img2basetest.csp代码如下:
<html> <head> <title> img 2 base64 test </title> </head> <body> <script language=cache runat=server> w "<img src=""data:image/gif;base64," d ##class(web.Test).Img2Base64("d:snchangeback.png") w """/>",! </script></body> </html>访问csp界面http://localhost/xxxxxxxxxx/csp/img2basetest.csp,即可看到图片效果。
图片转成base64字符串后, 所占内存比以前还要大,3个字节变4个字节。
如果存到数据库,还是很占空间。
相关文章推荐
- MongoDB 分片(Cluster)
- MySQL 数据类型以及常用命令
- mysqlbinlog 恢复mysql数据
- ApexSQLLog可以只读取ldf文件
- Oracle数据库案例整理-Oracle系统执行失败-sql_trace至TRUE导致Oracle在根文件夹中缺乏可用空间
- 安装SQL server2008教程及常见问题的解决
- sql server 存储过程
- 利用ORACLE 11g 新特性创建物理备库
- Mac 将mysql路径加入环境变量
- oracle中的rownum、order by与分页
- 【解决】Mysql字符集问题
- MySql查询结果按照指定顺序排序
- Oracle中group by用法
- Mysql用户权限管理
- 架构之路(五):忘记数据库
- 使用JDBC的addBatch()方法提高数据库插入更新效率
- mysql之InnoDB内存管理
- vnc配合oracle sqldeveloper 本地基本连接操作 centos
- 数据库主键生成策略 方法集合
- mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1'