一.保存图片到XML文件

  /// <summary>

  /// 保存图片到XML文件

  /// </summary>

  private void UploadImageToXml()

  {

  ///得到用户要上传的文件名

  string strFilePathName = loFile.PostedFile.FileName;

  string strFileName = Path.GetFileName(strFilePathName);

  int FileLength = loFile.PostedFile.ContentLength;

  if(FileLength<=0)

  return;

  try

  {

  ///图象文件临时储存Byte数组

  Byte[] FileByteArray = new Byte[FileLength];

  ///建立数据流对像

  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);

  ///查找<dbGuest>

  XmlNode root=xmlDoc.SelectSingleNode("dbImage");

  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();

  ///添加到<User>节点中

  xe1.AppendChild(xesub1);

  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);

  ///添加到<dbGuest>节点中

  root.AppendChild(xe1);

  xmlDoc.Save(fileName);

  Response.Redirect("ShowAllImg.aspx");

  }

  catch(Exception ex)

  {

  throw ex;

  }

  }

二.从XML中读取图片数据

  /// <summary>

  /// 从XML中读取图片

  /// </summary>

  /// <param name="ImageID">图片ID</param>

  private void ReadImageFromXml(string ImageID)

  {

  ///ID为图片ID

  int ImgID = Convert.ToInt32(ImageID);

  ///要打开的文件

  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();

  }

  }

以上内容来自网络

 
 

xml存储图片 二进制存储图片的更多相关文章

  1. RDLC报表显示存储于数据库的图片

    图片以二进制存储于数据库表中.在显示RDLC报表时,把图片呈现出来. 好吧. 把存储过程写好: CREATE PROCEDURE [dbo].[usp_File_Select] AS SELECT [ ...

  2. SQL 2008存储图片和读取图片

    用SQL Server存储文字数据非常easy实现,假设用SQL Server存储图片呢?大家有没有实现思路呢?如今我用一个Demo来为大家提供一种在SQL Server中存储图片的思路. 场景:在s ...

  3. iOS 图片本地存储、本地获取、本地删除

    在iOS开发中.经常用到图片的本地化. iOS 图片本地存储.本地获取.本地删除,可以通过以下类方法实现. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...

  4. iOS 图片的存储以及读取和删除

    将图片存储到本地 NSArray *dirArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask ...

  5. [Xcode 实际操作]八、网络与多线程-(15)使用网址会话对象URLSession下载图片并存储在沙箱目录中

    目录:[Swift]Xcode实际操作 本文将演示如何通过网址会话对象URLSession下载图片并存储在沙箱目录中. 网址会话对象URLSession具有在后台上传和下载.暂停和恢复网络操作.丰富的 ...

  6. 七牛云图片的存储与处理--基于node

    1. 手动上传 . 快速入门,这个简单,可以参考七牛官方文档: https://developer.qiniu.com/kodo/manual/1233/console-quickstart#step ...

  7. 关于javaweb中图片的存储问题

    图片上传到服务器,然后把上传路径保存到数据库,然后从数据库读出保存的路径显示到网站页面. 我们一般可以在CMS系统中将图片添加到图片服务器中(这个可以使用ftp来部署),然后图片上传到服务器后,在数据 ...

  8. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  9. C/C++ 图像二进制存储与读取

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50782792 在深度学习时,制作样本数 ...

随机推荐

  1. SQL Server 安装程序失败 不能在控件上调用 Invoke 或 BeginInvoke

    出现这种问题的原因是权限问题,怎么处理呢,使用管理员运行 如果这种方法不行,比如我的就不可以,点击右键 对各个权限对象重新添加完全控制权限. 我的电脑的情况是安装sql2010,然后安装sql管理工具 ...

  2. UI3_UILabel

    // // AppDelegate.m // UI3_UILabel // // Created by zhangxueming on 15/6/29. // Copyright (c) 2015年 ...

  3. 单机版简单弹幕墙demo (jqery+bootstrap)

    最近在看fcc  ,上面有一个弹幕墙设计的题目,要求从后端获取数据,显示出来.百度,谷歌都没找到相关好的例子作为借鉴,索性按照自己的思路写了一个简单的demo  .在做demo的过程中遇到最大的问题就 ...

  4. sizeWithFont方法被弃用了,该怎么办?

    之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个bo ...

  5. UIScrollView,UIPageControl

    #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIScrollViewDelegate&g ...

  6. [C/C++]在头文件中使用static定义变量意味着什么

    文章出处:http://www.cnblogs.com/zplutor/ 看到有一位同学在头文件中这么写: static const wchar_t* g_str1 = - static const ...

  7. trade 主要前端组件

    jQuery Custombox http://www.jqueryfuns.com/resource/view/27

  8. 忘记linux root密码怎么办?

    摘自:<鸟哥的Linux私房菜> 常常有些朋友在配置好了Linux之后,结果root密码给他忘记去!要重新安装吗?不需要的, 你只要以单人维护模式登陆即可更改你的root密码喔!由于lil ...

  9. .Net码农学Android---系统架构和基本概念

    至此,你应该已经完成以下前期准备事情: 1.安装完JDK 2.安装完SDK(并在Manager中进行相关版本的更新) 3.相关IDE(如eclipse) 4.安装完ADT 5.安装完AVD(如果你是真 ...

  10. 语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient)

    语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient) 原理 梅尔频率倒谱系数:一定程度上模拟了人耳对语音的处理特点 预加重:在语音信号中,高频部分的能 ...