一.保存图片到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. 移动web开发的一些坑

    类似的题目一搜一大堆,我就不再写那些meta标签类似的内容了,记录一下自己实现中遇到的问题,如果能帮到你,那再好不过了. 1px border的问题,大家能搜到很多方案,但如何选择还是要根据实际情况, ...

  2. 16款最佳HTML5超酷动画演示及源码

    1.HTML5/CSS3图片选择动画 可选择多张图片 之前我们已经分享过几款很酷的HTML5图片特效,像HTML5 3D图片折叠特效.HTML5 3D旋转图片相册等应用.今天我们来分享一款既炫酷又实用 ...

  3. Ajax 技术一

    一.Ajax概述 1.历史起源 1998年,微软公司Outlook Web Access研发小组在当时的IE浏览器中集成了一种技术,可以在客户端无刷新的前提下向服务器端发送Http请求,这门技术称之为 ...

  4. spring IOC经典理解

    不多解释,直接上图片!

  5. Myeclipse安装svn插件(link方式)

    Myeclipse安装svn插件(link方式) 优点:1.离线安装2.非侵入式 演示版本 myeclipse--myeclipse8.6 svn--subeclipse-site-1.6.5.zip ...

  6. 济南学习 Day 5 T1 pm

    欧拉函数(phi)题目描述: 已知(N),求phi(N). 输入说明: 正整数N. 输出说明: 输出phi(N). 样例输入: 8 样例输出: 4 数据范围: 对于20%的数据,N<=10^5 ...

  7. java.util.Vector

    public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, C ...

  8. WFP: 读取XPS文件或将word、txt文件转化为XPS文件

    读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: <Window x:Class="WpfWord.MainWindow"    ...

  9. Template、ItemsPanel、ItemContainerStyle、ItemTemplate

    先来看一张图(网上下的图,加了几个字) 1.Template是指控件的样式 在WPF中所有继承自contentcontrol类的控件都含有此属性,(继承自FrameworkElementdl类的Tex ...

  10. 两个Activity之间的交互startActivityForResult的使用

    代码如下: package com.zzw.teststartintentforrequest; import android.app.Activity; import android.content ...