存储Image到XML、显示Image
存儲Image到XML:
Byte[] FileByteArray = new Byte[FileLength]; //圖象文件臨時儲存Byte數組
????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);
????XmlNode root=xmlDoc.SelectSingleNode("dbImage");//查找<dbGuest>
????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();//設置文本節點
????xe1.AppendChild(xesub1);//添加到<User>節點中
????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);
????root.AppendChild(xe1);//添加到<dbGuest>節點中
????xmlDoc.Save(fileName);
顯示Image:
int ImgID = Convert.ToInt32(Request.QueryString["ID"]); //ID為圖片ID
???//建立數據庫鏈接
???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();
???}
轉載于:https://www.cnblogs.com/RobotTech/archive/2006/10/23/537162.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的存储Image到XML、显示Image的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何为ORACLE表空间创建大容量数据文
- 下一篇: 合同订立流程图附注