C#使用按钮postback上传网络表单文件,而不是使用POST

C#使用按钮postback上传网络表单文件,而不是使用POST,c#,.net,file-upload,webforms,autopostback,C#,.net,File Upload,Webforms,Autopostback,我有一个网络表单(aspx)页面 在它中,我们基本上有这样一种形式,我们在按下按钮时“发布”,但实际上它不是一个真正的httpPOST,它实际上只是该按钮上的一个postback onclick事件。 在这个事件中,我们得到了我们想要的所有信息,比如用户在文本字段中键入的内容等等。顺便说一句,效果很好 但是现在我想添加一个文件上传器,更具体地说是一个图像上传器 我可以在按钮事件单击回发中获取用户从codebehind上传到输入类型文件的文件吗?不是httppost。对此有一个特定的控件,File

我有一个网络表单(aspx)页面

在它中,我们基本上有这样一种形式,我们在按下按钮时“发布”,但实际上它不是一个真正的httpPOST,它实际上只是该按钮上的一个postback onclick事件。 在这个事件中,我们得到了我们想要的所有信息,比如用户在文本字段中键入的内容等等。顺便说一句,效果很好

但是现在我想添加一个文件上传器,更具体地说是一个图像上传器


我可以在按钮事件单击回发中获取用户从codebehind上传到输入类型文件的文件吗?不是httppost。

对此有一个特定的控件,FileUpload。只需将其添加到页面上,您就可以在回发时从该控件获取上传的文件,与页面上的其他控件(如文本框等)非常类似。 有关更多信息:

aspx页面:

<form id="form1" runat="server">
    <asp:FileUpload id="FileUploadControl" runat="server" />
    <asp:Button runat="server" id="UploadButton" text="Upload" onclick="UploadButton_Click" />
    <br /><br />
    <asp:Label runat="server" id="StatusLabel" text="Upload status: " />
</form>
protected void UploadButton_Click(object sender, EventArgs e)
{
    if(FileUploadControl.HasFile)
    {
        try
        {
            string filename = Path.GetFileName(FileUploadControl.FileName);
            FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
            StatusLabel.Text = "Upload status: File uploaded!";
        }
        catch(Exception ex)
        {
            StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
        }
    }
}