您的位置:首页 > 编程语言 > ASP

ASP.NET中常用功能代码总结(4)——保存图片到XML文件

2006-03-16 11:32 846 查看
ASP.NET中常用功能代码总结(4)——保存图片到XML文件
整理:Terrylee
一.保存图片到XML文件

1



/**//// <summary>
2

/// 保存图片到XML文件
3

/// </summary>
4

private void UploadImageToXml()
5





{
6



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

string strFilePathName = loFile.PostedFile.FileName;
8

string strFileName = Path.GetFileName(strFilePathName);
9

int FileLength = loFile.PostedFile.ContentLength;
10

if(FileLength<=0)
11

return;
12

try
13





{
14



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

Byte[] FileByteArray = new Byte[FileLength];
16


17



/**////建立数据流对像
18

Stream StreamObject = loFile.PostedFile.InputStream;
19


20



/**////读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
21

StreamObject.Read(FileByteArray,0,FileLength);
22


23



/**////要打开的文件
24

string fileName = Server.MapPath(".//WriteXml.xml");
25


26

XmlDocument xmlDoc = new XmlDocument();
27

xmlDoc.Load(fileName);
28


29



/**////查找<dbGuest>
30

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

XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildNodes;
32

int nIndex = xnl.Count;
33


34



/**////以下添加新结点
35

XmlElement xe1=xmlDoc.CreateElement("Image");//创建一个<User>节点
36


37

XmlElement xesub1=xmlDoc.CreateElement("ImageID");
38


39



/**////设置文本节点
40

xesub1.InnerText=nIndex.ToString();
41


42



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

xe1.AppendChild(xesub1);
44

XmlElement xesub2=xmlDoc.CreateElement("ImageContentType");
45

xesub2.InnerText=loFile.PostedFile.ContentType;
46

xe1.AppendChild(xesub2);
47

XmlElement xesub3=xmlDoc.CreateElement("ImageSize");
48

xesub3.InnerText=FileLength.ToString();
49

xe1.AppendChild(xesub3);
50

XmlElement xesub4=xmlDoc.CreateElement("ImageDescription");
51

xesub4.InnerText=tbDescription.Text;
52

xe1.AppendChild(xesub4);
53

XmlElement xesub5=xmlDoc.CreateElement("ImageData");
54

xesub5.InnerText= Convert.ToBase64String(FileByteArray);
55

xe1.AppendChild(xesub5);
56


57



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

root.AppendChild(xe1);
59

xmlDoc.Save(fileName);
60


61

Response.Redirect("ShowAllImg.aspx");
62

}
63

catch(Exception ex)
64





{
65

throw ex;
66

}
67

}

二.从XML中读取图片数据

1



/**//// <summary>
2

/// 从XML中读取图片
3

/// </summary>
4

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

private void ReadImageFromXml(string ImageID)
6





{
7



/**////ID为图片ID
8

int ImgID = Convert.ToInt32(ImageID);
9


10



/**////要打开的文件
11

string fileName = Server.MapPath(".//WriteXml.xml");
12


13

XmlDocument xmlDoc = new XmlDocument();
14

xmlDoc.Load(fileName);
15

XmlNodeList node = xmlDoc.SelectSingleNode("//Image[ImageID='"+ImgID.ToString()+"']").ChildNodes;
16

if(node!=null)
17





{
18

string strType = node.Item(1).InnerText;
19

string strData =node.Item(4).InnerText;
20

int nSize = int.Parse(node.Item(2).InnerText);
21


22



/**////设定输出文件类型
23

Response.ContentType = strType;
24


25



/**////输出图象文件二进制数制
26

Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize);
27

Response.End();
28


29

//也可以保存为图像
30

//FileStream fs = new FileStream(@"C:/aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);
31

//fs.Write((Convert.FromBase64String(strData), 0,nSize);
32

//fs.Close();
33

}
34

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: