【问题标题】:What is the alternative of Httpcontext.Current.Request.Files in Asp.Net Core 2.0?Asp.Net Core 2.0 中 Httpcontext.Current.Request.Files 的替代方案是什么?
【发布时间】:2018-04-13 12:17:10
【问题描述】:

我引用了this,这表明我可以使用IHttpContextAccessor 访问HttpContext.Current。但我想专门接收该对象似乎没有的文件。

那么在 Asp.Net Core 2.0 中有没有 Httpcontext.Current.Request.Files 的替代品

【问题讨论】:

  • 您要上传文件吗?
  • @Kirk 抱歉,我已经更新了问题。它是IHttpContextAccessor。但它的对象没有HttpContext.CurrentRequest.Files 属性。我认为它在核心中已被弃用。而且我没有找到它的替代品。
  • @Rob 是的。我正在尝试查找上传的文件。
  • 相关帖子 - MVC 6 HttpPostedFileBase?

标签: c# asp.net-core


【解决方案1】:

在控制器上下文中,您可以通过HttpContext.Request.Form.Files 访问文件:

public IActionResult Index()
{
    var files = HttpContext.Request.Form.Files;

    return View();
}

你必须注入外部控制器IHttpContextAccessor

对于上传文件读取File uploads in ASP.NET Core

【讨论】:

  • 哇..他们将其迁移到Form。我没注意到!谢谢:)
【解决方案2】:

在 Asp.Net Core 2.0 中上传文件是通过接口 IFormFile 完成的,您可以在发布操作中将其作为参数。

假设您有一个将调用 POST 操作并上传文件的 ajax 帖子。 您将首先创建表单数据。

var data = new FormData();

data.set("file", $("#uploadControl").val())

$.ajax({
   type: "POST",
   url: "upload",
   data: data,
   contentType: false,
   processData: false
});

你的动作应该是这样的

[HttpPost]
public IActionResult Upload(IFormFile file)
{
   //save the file
}

请不要复制/粘贴此内容,因为这只是大致的做法。

【讨论】:

  • 谢谢。我会尝试这种方法并恢复你
猜你喜欢
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 2019-12-15
  • 1970-01-01
  • 2019-06-29
相关资源
最近更新 更多