在Asp.Net Core 2.0中Httpcontext.Current.Request.Files的替代方案是什么?

时间:2017-11-01 07:57:37

标签: c# asp.net-core

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

Asp.Net Core 2.0中有Httpcontext.Current.Request.Files的替代方案

2 个答案:

答案 0 :(得分:7)

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

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

    return View();
}

和外部控制器你必须注入IHttpContextAccessor

上传文件为File uploads in ASP.NET Core

答案 1 :(得分:5)

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

假设你有一个ajax帖子,它会调用POST动作并上传文件。 您首先要创建表单数据。

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
}

请不要复制/粘贴此内容,因为这只是如何操作的一般概念。