ASP.Net/XML/Binary

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Write Binary (Image) Data to XML

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
    void Page_Load(object sender, EventArgs e)
    {
//        string xmlFilePath = @"C:\EmployeesNew.xml";
//        string imageFileName = @"C:\yourBinaryFileName.jpg";
        string xmlFilePath = MapPath("EmployeesNew.xml");
        string imageFileName = MapPath("3.ico");
        try
        {
            using (XmlWriter writer = XmlWriter.Create(xmlFilePath))
            {
                writer.WriteStartDocument(false);
                writer.WriteStartElement("employee");
                writer.WriteAttributeString("id", "1");
                writer.WriteStartElement("image");
                writer.WriteAttributeString("fileName", imageFileName);
                //Get the size of the file
                FileInfo fi = new FileInfo(imageFileName);
                int size = (int)fi.Length;
                //Read the JPEG file
                byte[] imgBytes = new byte[size];
                FileStream stream = new FileStream(imageFileName, FileMode.Open);
                BinaryReader reader = new BinaryReader(stream);
                imgBytes = reader.ReadBytes(size);
                reader.Close();
                //Write the JPEG data
                writer.WriteBinHex(imgBytes, 0, size);
                writer.WriteEndElement();
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Flush();
                lblResult.Text = "File is written successfully";
            }
        }
        catch (Exception ex)
        {
            lblResult.Text = "An Exception occurred: " + ex.Message;
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Writing Images using XmlWriter</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:label id="lblResult" runat="server" />
    </div>
    </form>
</body>
</html>