如何将POST请求内容保存为.NET中的文件

时间:2013-02-25 16:50:39

标签: c# asp.net .net vb.net http

我有一个客户端应用程序向POST发出asp.net URL请求(用于将文件上传到.NET)。

如何让asp.net页面收到此请求并将其另存为文件?

@ Darin Dimitrov 我已尝试过您的代码,但我得到500 internal server error如何跟踪它?!

2 个答案:

答案 0 :(得分:21)

如果客户端使用multipart/form-data请求编码(这是上传文件的标准),您可以从Request.Files集合中检索上传的文件。例如:

protected void Page_Load(object sender, EventArgs e)
{
    foreach (HttpPostedFile file in Request.Files)
    {
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
        file.SaveAs(path);
    }
}

或者如果您知道客户使用的名称,您可以直接访问它:

HttpPostedFile file = Request.Files["file"];

另一方面,如果客户端不对请求使用标准编码,则可能需要从Request.InputStream读取文件。

答案 1 :(得分:4)

您还可以使用

保存整个请求
HttpContext.Current.Request.SaveAs(filename,includeHeaders)

假设数据未上传为multipart / form-data