如何在不使用ASP.NET服务器端控件的情况下从C#ASP.NET中读取HTML文件类型的输入流

Dee*_*zed 6 html c# asp.net file-upload

我有以下表格

<form id="upload" method="post" EncType="Multipart/Form-Data" action="reciver.aspx">
        <input type="file" id="upload" name="upload" /><br/>
        <input type="submit" id="save" class="button" value="Save" />            
</form>
Run Code Online (Sandbox Code Playgroud)

当我查看文件集时,它是空的.

HttpFileCollection Files = HttpContext.Current.Request.Files;
Run Code Online (Sandbox Code Playgroud)

如何在不使用ASP.NET服务器端控件的情况下读取上载的文件内容?

Mou*_*nad 6

为什么你需要获取当前的httpcontext,只需使用页面的一个,看看这个例子:

//aspx
<form id="form1" runat="server" enctype="multipart/form-data">
 <input type="file" id="myFile" name="myFile" />
 <asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>

//c#
protected void btnUploadClick(object sender, EventArgs e)
{
    HttpPostedFile file = Request.Files["myFile"];
    if (file != null && file.ContentLength )
    {
        string fname = Path.GetFileName(file.FileName);
        file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
    }
}
Run Code Online (Sandbox Code Playgroud)

示例代码来自ASP.net中的Uploading Files,而不使用FileUpload服务器控件

顺便说一句,您不需要使用服务器端按钮控件.您可以将上面的代码添加到页面加载,您可以在其中检查当前状态是否为回发.

祝好运!