存储Image到XML、显示Image
存储Image到XML:
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = loFile.PostedFile.InputStream; //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray,0,FileLength);
string fileName = Server.MapPath(".\\WriteXml.xml"); //要打开的文件
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNode root=xmlDoc.SelectSingleNode("dbImage");//查找<dbGuest>
XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildNodes;
int nIndex = xnl.Count;
//以下添加新结点
XmlElement xe1=xmlDoc.CreateElement("Image");//创建一个<User>节点
XmlElement xesub1=xmlDoc.CreateElement("ImageID");
xesub1.InnerText=nIndex.ToString();//设置文本节点
xe1.AppendChild(xesub1);//添加到<User>节点中
XmlElement xesub2=xmlDoc.CreateElement("ImageContentType");
xesub2.InnerText=loFile.PostedFile.ContentType;
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("ImageSize");
xesub3.InnerText=FileLength.ToString();
xe1.AppendChild(xesub3);
XmlElement xesub4=xmlDoc.CreateElement("ImageDescription");
xesub4.InnerText=tbDescription.Text;
xe1.AppendChild(xesub4);
XmlElement xesub5=xmlDoc.CreateElement("ImageData");
xesub5.InnerText= Convert.ToBase64String(FileByteArray);
xe1.AppendChild(xesub5);
root.AppendChild(xe1);//添加到<dbGuest>节点中
xmlDoc.Save(fileName);
显示Image:
int ImgID = Convert.ToInt32(Request.QueryString["ID"]); //ID为图片ID
//建立数据库链接
string fileName = Server.MapPath(".\\WriteXml.xml"); //要打开的文件
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNodeList node = xmlDoc.SelectSingleNode("//Image[ImageID='"+ImgID.ToString()+"']").ChildNodes;
if(node!=null)
{
string strType = node.Item(1).InnerText;
string strData =node.Item(4).InnerText;
int nSize = int.Parse(node.Item(2).InnerText);
Response.ContentType = strType;//设定输出文件类型
//输出图象文件二进制数制
Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize);
Response.End();
//也可以保存为图像
// FileStream fs = new FileStream(@"C:\aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);
// fs.Write((Convert.FromBase64String(strData), 0,nSize);
// fs.Close();
}
转载于:https://www.cnblogs.com/RobotTech/archive/2006/10/23/537162.html
存储Image到XML、显示Image相关推荐
- 数据库存储图片路径并显示到前端
数据库存储图片路径并显示到前端 -为啥不直接存图片:因为图片本身太大了,虽然存取方便了程序员,但对数据库不友好.所以采取存取路径,再根据路径解析的方法. 一.数据库表设计: 从以上思想出发,需要存图片 ...
- Android数据存储——2.文件存储_C_DOM解析XML文档
今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...
- maven中pom.xml显示不正常的问题
对于初学maven的人来说,配置环境是一件十分烦恼的事,本人也表示十分痛心,就自己遇到的问题做一下整理,方便后续学者有帮助可寻. 我遇到的问题是,在自认为maven配置无误之后,发现pom.xml显示 ...
- PKM2数据导出的xml显示用的XSL
为什么80%的码农都做不了架构师?>>> PKM2数据导出的xml显示用的XSL. PKM2这个个人知识管理软件相信很多人用过,可以把数据导出为chm电子书,但是不知道为什么倒 ...
- 医学图象存储、检索和显示的新技术及新动向
医学图象存储.检索和显示的新技术及新动向 2010年01月09日 一.从成像装置的发展看PACS的存储系统 PACS 的发展缘于二个因素:一是医院影象设备的发展从而使放射科图象数据量激增:二是对付这些 ...
- 信息技术是指利用电子计算机和现代通信手段实现获取、传递、存储、处理、显示、分配信
信息技术是指利用电子计算机和现代通信手段实现获取.传递.存储.处理.显示.分配信息等的相关技术
- 微信昵称在数据库存储处理,解决显示乱码方案
微信昵称在数据库存储处理,解决显示乱码方案 原理:我们先将微信昵称编码存入数据库,显示的时候解码,就可以避免数据库无法直接存储微信昵称中的特殊字符. 一.定义编码解码类 <?php /*** C ...
- xml显示浏览器标签_浅析浏览器书签的导入和导出
浏览器有个实用的功能,但是可能用的频率不高,就是书签/收藏的导入和导出,因为现在一般浏览器都有云同步功能,所以这个功能存在感不强. 浏览器书签是可以跨不同的浏览器导入的,所以意味着导出的文件肯定是有一 ...
- c语言存储学生信息并显示,C语言实现学生信息管理程序
本文实例为大家分享了C语言实现学生信息管理程序的具体代码,供大家参考,具体内容如下 目前只有5个功能 1. 增加学生信息 2. 删除学生信息 3. 查询某学生信息 4. 列出所有学生信息 5. 按出生 ...
最新文章
- ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议
- 光滑噪声数据常用的方法_九大常用数据分析方法汇总
- mac terminal常用命令接触
- 7-CPU Reset
- vue响应的res.data和res.data.data
- OpenJDK作为Linux上的默认Java
- 【火炉炼AI】机器学习040-NLP性别判断分类器
- 七年级上册计算机教学反思,七年级信息技术上册教学反思
- EDA技术实用教程 | 复习八 | 多位加法器的行为级描述
- 图片生成链接最简单的方法
- C语言变量及其生命周期
- python汽车_Python 小车代码
- python大学生信息管理系统_基于Python的高等学校社团信息管理系统
- linux 实验心得体会
- Windows XP 缩略图不显示文件名
- 049--python--多人聊天室案例
- 深度网络中的上采样总结
- Element-UI可编辑表格的实现
- 博易大师数据导出工具
- CTA-861标准解析EDID的VSDB与VDB
热门文章
- Hadoop详解(三):HDFS完全分布式环境搭建
- Java设计模式(四):工厂设计模式
- 现代操作系统:第三章 内存管理
- c语言 offsetof函数,C 库宏 - offsetof()函数
- python安装包之后仍提示_解决已经安装requests,却依然提示No module named requests问题...
- kali桥接模式无法上网_听没听过用手机接路由器上网?
- openstack云主机无法绑定ip_智汇华云|OpenStack 虚拟机 GPU 性能优化
- c++ 句柄 计算控件坐标_练习答案|| 计算机基础第【28】期
- Redis复制的高可用详解
- (GIT)代码分支管理策略