1
protected void Page_Load(object sender, System.EventArgs e)
2
{
3
int ImgID = Convert.ToInt32(Request.QueryString["ID"]); //ID为图片ID
4
//建立数据库链接
5
string fileName = Server.MapPath(".\\WriteXml.xml"); //要打开的文件
6
7
XmlDocument xmlDoc = new XmlDocument();
8
xmlDoc.Load(fileName);
9
XmlNodeList node = xmlDoc.SelectSingleNode("//Image[ImageID='"+ImgID.ToString()+"']").ChildNodes;
10
if(node!=null)
11
{
12
string strType = node.Item(1).InnerText;
13
string strData =node.Item(4).InnerText;
14
int nSize = int.Parse(node.Item(2).InnerText);
15
16
Response.ContentType = strType;//设定输出文件类型
17
//输出图象文件二进制数制
18
Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize);
19
Response.End();
20
//也可以保存为图像
21
// FileStream fs = new FileStream(@"C:\aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);
22
// fs.Write((Convert.FromBase64String(strData), 0,nSize);
23
// fs.Close();
24
}
25
26
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

保存
1
protected void btnUpload_Click(object sender, System.EventArgs e)
2
{
3
//得到用户要上传的文件名
4
string strFilePathName = loFile.PostedFile.FileName;
5
string strFileName = Path.GetFileName(strFilePathName);
6
int FileLength = loFile.PostedFile.ContentLength;
7
if(FileLength<=0)
8
return;
9
try
10
{
11
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
12
Stream StreamObject = loFile.PostedFile.InputStream; //建立数据流对像
13
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
14
StreamObject.Read(FileByteArray,0,FileLength);
15
string fileName = Server.MapPath(".\\WriteXml.xml"); //要打开的文件
16
17
XmlDocument xmlDoc = new XmlDocument();
18
xmlDoc.Load(fileName);
19
XmlNode root=xmlDoc.SelectSingleNode("dbImage");//查找<dbGuest>
20
XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildNodes;
21
int nIndex = xnl.Count;
22
//以下添加新结点
23
XmlElement xe1=xmlDoc.CreateElement("Image");//创建一个<User>节点
24
XmlElement xesub1=xmlDoc.CreateElement("ImageID");
25
xesub1.InnerText=nIndex.ToString();//设置文本节点
26
xe1.AppendChild(xesub1);//添加到<User>节点中
27
XmlElement xesub2=xmlDoc.CreateElement("ImageContentType");
28
xesub2.InnerText=loFile.PostedFile.ContentType;
29
xe1.AppendChild(xesub2);
30
XmlElement xesub3=xmlDoc.CreateElement("ImageSize");
31
xesub3.InnerText=FileLength.ToString();
32
xe1.AppendChild(xesub3);
33
XmlElement xesub4=xmlDoc.CreateElement("ImageDescription");
34
xesub4.InnerText=tbDescription.Text;
35
xe1.AppendChild(xesub4);
36
XmlElement xesub5=xmlDoc.CreateElement("ImageData");
37
xesub5.InnerText= Convert.ToBase64String(FileByteArray);
38
xe1.AppendChild(xesub5);
39
40
41
root.AppendChild(xe1);//添加到<dbGuest>节点中
42
xmlDoc.Save(fileName);
43
44
Response.Redirect("ShowAllImg.aspx");
45
}
46
catch
47
{
48
}
49
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

读取