返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

ASP.NET-文件上传

时间:2020-01-14 16:19来源:知行网www.zhixing123.cn 编辑:麦田守望者

 ASP.NET具有两个控件,允许用户将文件上传到Web服务器。服务器收到发布的文件数据后,应用程序可以保存,检查或忽略它。以下控件允许文件上传:

  • HtmlInputFile -HTML服务器控件

  • FileUpload-和ASP.NET Web控件

这两个控件都允许文件上传,但是FileUpload控件会自动设置表单的编码,而HtmlInputFile则不允许这样做。

在本教程中,我们使用FileUpload控件。FileUpload控件允许用户浏览并选择要上传的文件,并提供浏览按钮和用于输入文件名的文本框。

一旦用户通过输入名称或浏览在文本框中输入文件名,就可以调用FileUpload控件的SaveAs方法将文件保存到磁盘。

FileUpload的基本语法为:

<asp:FileUpload ID= "Uploader" runat = "server" />

FileUpload类派生自WebControl类,并继承其所有成员。除此之外,FileUpload类还具有以下只读属性:

性质 描述
文件字节 返回要上传文件中字节的数组。
文件内容 返回指向要上传文件的流对象。
文件名 返回要上传的文件的名称。
HasFile 指定控件是否有要上传的文件。
发表文件 返回对上载文件的引用。

发布的文件封装在HttpPostedFile类型的对象中,可以通过FileUpload类的PostedFile属性访问该文件。

HttpPostedFile类具有以下常用属性:

性质 描述
内容长度 返回上传文件的大小(以字节为单位)。
内容类型 返回上传文件的MIME类型。
文件名 返回完整的文件名。
输入流 返回指向上传文件的流对象。

下面的示例演示FileUpload控件及其属性。该表单具有一个FileUpload控件以及一个保存按钮和一个标签控件,用于显示文件名,文件类型和文件长度。

在设计视图中,表单如下所示:

上传文件

内容文件代码如下:

<body>    <form id="form1" runat="server">           <div>          <h3> File Upload:</h3>          <br />          <asp:FileUpload ID="FileUpload1" runat="server" />          <br /><br />          <asp:Button ID="btnsave" runat="server" onclick="btnsave_Click"  Text="Save" style="width:85px" />          <br /><br />          <asp:Label ID="lblmessage" runat="server" />       </div>           </form> </body>

保存按钮后面的代码如下:

protected void btnsave_Click(object sender, EventArgs e) {    StringBuilder sb = new StringBuilder();        if (FileUpload1.HasFile)    {       try       {          sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName);                    //saving the file          FileUpload1.SaveAs("<c:\\SaveDirectory>" + FileUpload1.FileName);                 //Showing the file information          sb.AppendFormat("<br/> Save As: {0}",  FileUpload1.PostedFile.FileName);          sb.AppendFormat("<br/> File type: {0}",    FileUpload1.PostedFile.ContentType);          sb.AppendFormat("<br/> File length: {0}",  FileUpload1.PostedFile.ContentLength);          sb.AppendFormat("<br/> File name: {0}",  FileUpload1.PostedFile.FileName);                 }catch (Exception ex)       {          sb.Append("<br/> Error <br/>");          sb.AppendFormat("Unable to save file <br/> {0}", ex.Message);       }    }    else    {       lblmessage.Text = sb.ToString();    } }

请注意以下几点:

  • StringBuilder类派生自System.IO命名空间,因此需要将其包括在内。

  • try和catch块用于捕获错误,并显示错误消息。

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • ASP.NET-广告轮播

    AdRotator控件从列表中随机选择横幅图形,该列表在外部XML计划文件中指定。 该外部XML...

  • ASP.NET-文件上传

    ASP.NET具有两个控件,允许用户将文件上传到Web服务器。 服务器收到发布的文件数据后...

  • ADO.NET

    ADO.NET在前端控件和后端数据库之间提供了桥梁。 ADO.NET对象封装了所有数据访问操作...

  • ASP.NET-数据库访问

    ASP.NET允许访问和使用以下数据源: 数据库(例如,Access,SQL Server,Oracle,MySQ...

  • ASP.NET-验证器

    ASP.NET验证控件验证用户输入数据,以确保不会存储无用,未经身份验证或矛盾的数据。 ...

  • ASP.NET-管理状态

    超文本传输协议(HTTP)是无状态协议。 当客户端与服务器断开连接时,ASP.NET引擎将丢...

猜你感兴趣