一、保存到XML文件
// 得到用户要上传的文件名
string strFilePathName = loFile.PostedFile.FileName;
string strFileName = Path.GetFileName(strFilePathName);
int FileLength = loFile.PostedFile.ContentLength;
if(FileLength<=0)
return;
try
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
{
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Byte[] FileByteArray =
new Byte[FileLength];
// 图象文件临时储存Byte数组 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Stream StreamObject = loFile.PostedFile.InputStream;
// 建立数据流对像
// 读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
StreamObject.Read(FileByteArray,0,FileLength);
string fileName = Server.MapPath(".\\WriteXml.xml");
// 要打开的文件
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlDocument xmlDoc =
new XmlDocument();
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xmlDoc.Load(fileName);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlNode root=xmlDoc.SelectSingleNode("dbImage");
// 查找<dbGuest> ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildNodes;
int nIndex = xnl.Count;
// 以下添加新结点 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xe1=xmlDoc.CreateElement("Image");
// 创建一个<User>节点 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xesub1=xmlDoc.CreateElement("ImageID");
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xesub1.InnerText=nIndex.ToString();
// 设置文本节点 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xe1.AppendChild(xesub1);
// 添加到<User>节点中 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xesub2=xmlDoc.CreateElement("ImageContentType");
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xesub2.InnerText=loFile.PostedFile.ContentType;
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xe1.AppendChild(xesub2);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xesub3=xmlDoc.CreateElement("ImageSize");
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xesub3.InnerText=FileLength.ToString();
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xe1.AppendChild(xesub3);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xesub4=xmlDoc.CreateElement("ImageDescription");
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xesub4.InnerText=tbDescription.Text;
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xe1.AppendChild(xesub4);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement xesub5=xmlDoc.CreateElement("ImageData");
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xesub5.InnerText= Convert.ToBase64String(FileByteArray);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xe1.AppendChild(xesub5);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
root.AppendChild(xe1);
// 添加到<dbGuest>节点中 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xmlDoc.Save(fileName);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Redirect("ShowAllImg.aspx");
![ExpandedBlockEnd.gif](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
catch
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
{
![ExpandedBlockEnd.gif](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
二、从XML文件中取出显示
int ImgID = Convert.ToInt32(Request.QueryString["ID"]);
// ID为图片ID
// 建立数据库链接
string fileName = Server.MapPath(".\\WriteXml.xml");
// 要打开的文件
![None.gif](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
XmlDocument xmlDoc =
new XmlDocument();
![None.gif](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
xmlDoc.Load(fileName);
![None.gif](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
XmlNodeList node = xmlDoc.SelectSingleNode("//Image[ImageID='"+ImgID.ToString()+"']").ChildNodes;
if(node!=
null)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
{
string strType = node.Item(1).InnerText;
string strData =node.Item(4).InnerText;
int nSize =
int.Parse(node.Item(2).InnerText);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.ContentType = strType;
// 设定输出文件类型
// 输出图象文件二进制数制 ![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize);
![InBlock.gif](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.End();
// 也可以保存为图像
// FileStream fs = new FileStream(@"C:\aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);
// fs.Write((Convert.FromBase64String(strData), 0,nSize);
// fs.Close(); ![ExpandedBlockEnd.gif](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/10/17/256605.html,如需转载请自行联系原作者