⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asp.net 2.0高级控件之fileupload控件.txt

📁 学习积累的代码段
💻 TXT
字号:
应用程序中经常需要允许用户把文件上传到web服务器。尽管在ASP.NET 1.X也可以完成该功能,但在ASP.NET 2.0中使用FileUpload控件会更简单。 

  该控件让用户更容易地浏览和选择用于上传的文件,它包含一个浏览按钮和用于输入文件名的文本框。只要用户在文本框中输入了完全限定的文件名,无论是直接输入或通过浏览按钮选择,都可以调用FileUpload的SaveAs方法保存到磁盘上。

  除了从WebControl类继承的标准成员,FileUpload控件还公开了几个只读的属性,在表5-8和表5-9列出。

  表5-8 FileUpload控件属性

名  称  类型  读  写  说  明  
FileContent  Stream  ×   返回一个指向上传文件的流对象  
FileName  string  ×   返回要上传文件的名称,不包含路径信息  
HasFile  Boolean  ×   如果是true,则表示该控件有文件要上传  
PostedFile  HttpPostedFile  ×   返回已经上传文件的引用。表5-9列出了它所公开的只读属性  

  表5-9 HttpPostedFile属性

名  称  类  型  读  写  说  明  
ContentLength  integer  ×   返回上传文件的按字节表示的文件大小  
ContentType  string  ×   返回上传文件的MIME内容类型  
FileName  string  ×   返回文件在客户端的完全限定名  
InputStream  Stream  ×   返回一个指向上传文件的流对象  

  所有这些属性将在下面的示例中说明。

  为了查看FileUpload控件在实际中的运用,创建一个FileUploadDemo网站。在页面上添加一个FileUpload控件,然后,添加两个ASP.NET按钮,Text属性分别设置为Save和Display,ID分别设置为btnSave和btnDisplay。增加两个Label控件,并分别将ID设置为lblMesage和lblDisplay。用<br/>HTML元素分隔这些控件。切换到设计视图,通过双击每个按钮,为它们在代码隐藏文件中创建具有默认名称的Click事件处理程序。完成后的内容文件类似于示例5-11。

  示例5-11:FileUploadDemo网站的default.aspx

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
 <title>FileUpload Control</title>
</head>

<body>
 <form id=”form1” runat=”server”>
 <div>
  <h1>FileUpload Control</h1>
  <asp:FileUpload ID=”FileUpload1” runat=”server” />
  <br />
  <asp:Button ID=”btnSave” runat=”server” Text=”Save” OnClick=”btnSave_Click” />
  <asp:Button ID=”btnDisplay” runat=”server” Text=”Display” OnClick=”btnDisplay_Click” />
  <br />
  <br />
  <asp:Label ID=”lblMessage” runat=”server” />
  <asp:Label ID=”lblDisplay” runat=”server” />
 </div>
 </form>
</body>
</html> 



示例5-12:FileUploadDemo网站的Default.aspx.cs



using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO; // 使用Stream必需

public partial class _Default : System.Web.UI.Page 
{
 protected void Page_Load(object sender, EventArgs e)
 {}
 protected void btnSave_Click(object sender, EventArgs e)
 {
  string str = “”;
  if (FileUpload1.HasFile)
  {
   try
   {
    str += “Uploading file: “ + FileUpload1.FileName;
    // 保存文件
    FileUpload1.SaveAs(“c:\\websites\\uploads\\” + FileUpload1.FileName);
    // 显示文件信息
    str += “<br/>Saved As: “ + FileUpload1.PostedFile.FileName;
    str += “<br/>File Type: “ + FileUpload1.PostedFile.ContentType;
    str += “<br/>File Length (bytes): “ + FileUpload1.PostedFile.ContentLength;
    str += “<br/>PostedFile File Name: “ + FileUpload1.PostedFile.FileName;
   }
   catch (Exception ex)
   {
    str += “<br/><b>Error</b><br/>Unable to save 
c:\\websites\\uploads\\” + FileUpload1.FileName +“<br/>” + ex.Message;
   }
  }
  else
  {
   str = “No file uploaded.”;
  }
  lblMessage.Text = str;
  lblDisplay.Text = “”;
 }

 protected void btnDisplay_Click(object sender, EventArgs e)
 {
  string str = “<u>File: “ + FileUpload1.FileName + “</u><br/>”; 
  if (FileUpload1.HasFile)
  {
   try
   {
    Stream stream = FileUpload1.FileContent;
    StreamReader reader = new StreamReader(stream);
    string strLine = “”;
    do
    {
     strLine = reader.ReadLine( );
     str += strLine;
    } while (strLine != null);
   }
   catch (Exception ex)
   {
    str += “<br/><b>Error</b><br/>Unable to display “ + FileUpload1.FileName +
“<br/>” + ex.Message;
   }
  }
  else
  {
   str = “No file uploaded.”;
  }
  lblDisplay.Text = str;
  lblMessage.Text = “”;
 }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -