ASP.Net教程

ASP.NET 文件上传

ASP.NET 有两个控件允许用户将文件上传到 Web 服务器。一旦服务器接收到发布的文件数据,应用程序就可以保存、检查或忽略它。以下控件允许文件上传:
HtmlInputFile-HTML 服务器控件 FileUpload-和 ASP.NET 网络控件
两个控件都允许上传文件,但 FileUpload 控件会自动设置表单的编码,而 HtmlInputFile 不会这样做。
在本教程中,我们使用 FileUpload 控件。 FileUpload 控件允许用户浏览和选择要上传的文件,提供一个浏览按钮和一个用于输入文件名的文本框。
一旦用户通过键入名称或浏览在文本框中输入了文件名,就可以调用 FileUpload 控件的 SaveAs 方法将文件保存到磁盘。
FileUpload 的基本语法是:
<asp:FileUpload ID= "Uploader" runat = "server" />
FileUpload 类派生自 WebControl 类,并继承其所有成员。除此之外,FileUpload 类还具有以下只读属性:
属性 说明
FileBytes 返回要上传的文件中的字节数组。
FileContent 返回指向要上传的文件的流对象。
FileName 返回要上传的文件名。
HasFile 指定控件是否有要上传的文件。
PostedFile 返回对上传文件的引用。
发布的文件封装在一个类型为 HttpPostedFile 的对象中,可以通过 FileUpload 类的 PostedFile 属性访问该对象。
HttpPostedFile 类具有以下常用属性:
属性 说明
ContentLength 以字节为单位返回上传文件的大小。
ContentType 返回上传文件的 MIME 类型。
FileName 返回完整的文件名。
InputStream 返回一个指向上传文件的流对象。

示例

以下示例演示了 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 块用于捕获错误,并显示错误消息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4