【问题标题】:How to save a POST request content as a file in .NET [closed]如何将 POST 请求内容保存为 .NET 中的文件 [关闭]
【发布时间】:2013-02-25 16:50:38
【问题描述】:

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

如何让asp.net页面接收到这个请求并保存为文件?

@达林·迪米特洛夫 我已经尝试过你的代码,但我得到了500 internal server error 我如何跟踪它?!

【问题讨论】:

  • 我认为这是一个有效的问题。如果您正在执行 IFRAME 帖子以上传看起来像 AJAX 的 IE
  • 我同意@Sean...这是一个有效的问题...不知道为什么它被关闭了。
  • 我注意到,有时问题会因为没有用最好的英语措辞而被关闭。这是关闭问题的绝对愚蠢的理由。如果问题的内容是合法的,还有什么重要的吗?

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


【解决方案1】:

如果客户端使用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 读取文件。

【讨论】:

  • 你能给我一个完整的例子吗,我不是 .NET 专家。我已经完成了android客户端,想要制作服务器端组件?
  • 当然,我已经用一个例子更新了我的答案。
  • 谢谢先生,这对它作为客户端有用吗?stackoverflow.com/questions/1067655/…
【解决方案2】:

您还可以使用

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

假设数据不是作为 multipart/form-data 上传的

【讨论】:

猜你喜欢
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
相关资源
最近更新 更多