文件上传用XML

听宁信息

此文出自:http://etning.5i4k.net/aspnet/display.aspx?id=12&Fid1=2&Fid2=4

XML

- <Guests>
- <xsd:schema id="Guests" targetNamespace="" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="Guests" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="Files">
- <xsd:complexType>
- <xsd:sequence>
  <xsd:element name="title" type="xsd:string" minOccurs="0" /> 
  <xsd:element name="file" type="xsd:string" minOccurs="0" /> 
  <xsd:element name="length" type="xsd:string" minOccurs="0" /> 
  <xsd:element name="contenttype" type="xsd:string" minOccurs="0" /> 
  </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
  </xsd:choice>
  </xsd:complexType>
  </xsd:element>
  </xsd:schema>
- <Files>
  <title>a</title> 
  <file>C:/csharpexamples/banana.jpg</file> 
  <length>1954</length> 
  <contenttype>image/pjpeg</contenttype> 
  </Files>
- <Files>
  <title>b</title> 
  <file>C:/csharpexamples/event.cs</file> 
  <length>4883</length> 
  <contenttype>application/octet-stream</contenttype> 
  </Files>
- <Files>
  <title>b</title> 
  <file>C:/csharpexamples/event.cs</file> 
  <length>4883</length> 
  <contenttype>application/octet-stream</contenttype> 
  </Files>
- <Files>
  <title>ghjhhjgh</title> 
  <file>D:/wwwroot/help.gif</file> 
  <length>342</length> 
  <contenttype>image/gif</contenttype> 
  </Files>
- <Files>
  <title>fghfghg</title> 
  <file>D:/wwwroot/pagerror.gif</file> 
  <length>2806</length> 
  <contenttype>image/bmp</contenttype> 
  </Files>
- <Files>
  <title>sdfsfd</title> 
  <file>D:/wwwroot/first.dll</file> 
  <length>3584</length> 
  <contenttype>application/octet-stream</contenttype> 
  </Files>
- <Files>
  <title>neelam</title> 
  <file>D:/wwwroot/mmc.gif</file> 
  <length>356</length> 
  <contenttype>image/gif</contenttype> 
  </Files>
  </Guests>

<-------------------!>
UP.ASPX

<%@ Page Language="C#" EnableSessionState="False"  %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%-- These are the imported namespaces needed to run the guest book --%>

<html>
<head>
<title>Uploading Files.</title>
<script Language="C#" runat="server">
//This method is called when the upload button is clicked 
public void Submit_Click(Object sender, EventArgs e)
{
//the path to the Xml file which will contain all the data
string dataFile = "db/upload.xml" ;
try
{
//proceed only if the file is posted
if(file.PostedFile!=null)
{
errmess.Text="" ;
//Open a FileStream to the Database in read mode
FileStream fin;
fin= new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
//Create a DataSet object
DataSet guestData = new DataSet();
//Read data from the Database
    guestData.ReadXml(fin);
fin.Close();
//extract the filename from the full file path
string nam = file.PostedFile.FileName ;
int i= nam.LastIndexOf("//") ;
string newnm =nam.Substring(i) ;
//Create a new DataRow from the DataSet Schema
DataRow newRow = guestData.Tables[0].NewRow();
//Fill the DataRow with form values
newRow["title"]=title.Text;
newRow["file"]=file.PostedFile.FileName;
newRow["length"]=file.PostedFile.ContentLength.ToString();
newRow["contenttype"]=file.PostedFile.ContentType;
//Add the row to the DataSet
guestData.Tables[0].Rows.Add(newRow);
//Create another filestream to the DataBase file in write mode 
FileStream fout ;
    fout = new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Write,FileShare.ReadWrite);
guestData.WriteXml(fout, XmlWriteMode.WriteSchema);
fout.Close();
//Hide the Form Panel
formPanel.Visible=false;
//Display the view Panel
thankPanel.Visible=true;
}
}
catch (Exception edd)
       {
          //catch any other exception that occur 
errmess.Text="Cannot write to XML file because "+edd.ToString() ;

       }
}
</script>
</head>
<LINK href="mystyle.css" type=text/css rel=stylesheet>
<body topmargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0">
<%-- Include a header file 'header.inc' --%>
<!-- #Include File="header.inc" --> 
<asp:label id="errmess" text="" style="color:#FF0000" runat="server" />

<asp:Panel id=formPanel runat="server" >
<form runat="server" enctype="multipart/form-data" action="upload.aspx">
<table border="0"  width="80%" align="Center">
<tr class="rowstyle" >
<td>Title :</td>
<td ><asp:textbox class="textstyle" text="" id="title" runat="server" />
<asp:RequiredFieldValidator ControlToValidate=title display=static runat=server>*</asp:RequiredFieldValidator></td>
</tr>
<tr class="rowstyle">
<td>File :</td>
<td><input type="file" class="textstyle" text="" id="file" runat="server"/>
<asp:RequiredFieldValidator ControlToValidate=file display=static runat=server>*</asp:RequiredFieldValidator></td>
</tr>
<tr class="rowstyle">
<td colspan="2" >
<asp:Button class="buttonstyle" id="write" Text="Upload" onClick="Submit_Click" runat="server"/></td>
</tr>
</table>
</form>
</asp:Panel>

<asp:Panel id=thankPanel visible=false runat=server>
<p class="messagestyle" align=center><b>Your file has been uploaded!</b><br></p>
<p align="center"> <a href="show.aspx">Click here </a> to view Uploaded files.</p>
</asp:Panel>

</body>
</html>

 

show.aspx

<%@ Page Language="C#"  %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%-- Needed Assembiles --%>

<html>
<head>
<title>Uploading files</title>
<script language="C#" runat=server>
//run the script when the Page is Loaded
public void Page_Load(Object sender, EventArgs e)
{
//the path to the Xml file which will contain all the data
string datafile = "db/upload.xml" ;
try
        {
        //create a DataSet object
        DataSet guestData = new DataSet();
//Open a FileStream to the Database 
FileStream fin ;
fin = new FileStream(Server.MapPath(datafile),FileMode.Open, FileAccess.Read,FileShare.ReadWrite) ; 
              //Read the Database into the DataSet
             guestData.ReadXml(fin);
fin.Close();
//Databind the first table in the Dataset to the Repeater
MyDataList.DataSource = guestData.Tables[0].DefaultView;
          MyDataList.DataBind();
         }
catch (Exception ex)
         {
             //catch any other exceptions that occur
errmess.Text="Cannot read from XML file because "+ex.ToString() ;
         }
}
</script>
<LINK href="mystyle.css" type=text/css rel=stylesheet>
</head>
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" rightmargin="0">
<!-- #Include File="header.inc" --> 
<asp:label id="errmess" text="" style="color:#FF0000" runat="server" />
<br>
<ASP:Repeater id="MyDataList" runat="server">
<headertemplate>
<table  width="100%" style="font: 8pt verdana" align="center">
<tr style="background-color:tan">
<th>Title</th>
<th>File</th>
<th>Length(In Bytes)</th>
<th>Content Type</th>
</tr>
</headertemplate>

<itemtemplate>
<tr style="background-color:beige">
<td>
<%# DataBinder.Eval(Container.DataItem, "title") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "file") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "length") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "contenttype") %>
</td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</ASP:Repeater>

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值