如何使用HTML输入控件上传文件

时间:2014-01-04 19:38:15

标签: c# html asp.net

我有HTML输入控件来上传文件,但文件返回空。

<input type="file" class="upload"  runat="server" id="FUFile"/>

string tempVar = "~/res/Posts/" + FUFile.Value.ToString();
        FUFile.ResolveUrl(Server.MapPath(tempVar));

2 个答案:

答案 0 :(得分:1)

只需使用FileUpload控件

<asp:FileUpload runat="server" ID="FUFile">
<asp:Button runat="server" ID="UploadButton" Text="Upload file" OnClick="UploadButton_Click"/>

然后,您可以将FUFile的属性(FileContent用于流,FileBytes将完整内容用作字节数组,PostedFile用于{{1}你需要的具有HttpPostedFile方法的对象。

例如,请参阅此答案以保存流:How do I save a stream to a file in C#?

请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload(v=vs.110).aspx

上的完整示例

答案 1 :(得分:1)

该文件正在从fileupload正确发布。如果需要保存FUFile.PostedFile:

if (FUFile.PostedFile != null)
{
    string tempVar = "~/res/Posts/" + FUFile.Value.ToString();
    FUFile.PostedFile.SaveAs(Server.MapPath(tempVar));
}

以下是测试方法:

在标记中我有这个:

<input type="file" class="upload"  runat="server" id="FUFile"/>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

在代码中我有这个方法:

protected void Button1_Click(object sender, EventArgs e)
{
    if (FUFile.PostedFile != null)
    {
        string tempVar = "~/res/Posts/" + FUFile.Value.ToString();
        FUFile.PostedFile.SaveAs(Server.MapPath(tempVar));
    }
}

当我选择一个文件并单击该按钮时,它会将文件上传到../res/Posts文件夹。

enter image description here