如何正确使用ASP.NET FileUpload控件

Hos*_*yer 21 c# asp.net networking file-upload

我正在尝试在ASP.NET中使用FileUpload控件

这是我当前的命名空间设置:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
Run Code Online (Sandbox Code Playgroud)

在我的课堂上,我只是使用:

FileUpload fileUpload = new FileUpload();
Run Code Online (Sandbox Code Playgroud)

但是,通常不属于FileUpload的属性似乎都不可用......例如.HasFile.我试图在后面的代码中创建Button click方法,我注意到.HasFile的大部分用法都在前面的代码中,但是我的理解是这不应该重要.

有谁知道为什么?

Mac*_*iej 57

应该将ASP.NET控件放在aspx标记文件中.这是与他们合作的首选方式.所以添加FileUpload控件到您的页面.确保它具有所有必需的属性,包括IDrunat:

<asp:FileUpload ID="FileUpload1" runat="server" />
Run Code Online (Sandbox Code Playgroud)

实例FileUpload1将在自动生成/更新的*.designer.cs文件中自动创建,该文件是页面的部分类.您通常不必关心其中的内容,只需假设对aspx页面的任何控件都会自动实例化.

添加一个可以回发的按钮:

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
Run Code Online (Sandbox Code Playgroud)

然后转到您的*.aspx.cs文件,其中包含您的代码并添加按钮单击处理程序.在C#中它看起来像这样:

protected void Button1_Click(object sender, EventArgs e)
{
  if (this.FileUpload1.HasFile)
  {
    this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName);
  }
}
Run Code Online (Sandbox Code Playgroud)

就是这样.一切都应该按预期工作.