我提到了here,这表明我可以使用IHttpContextAccessor
来访问HttpContext.Current
。但我想专门接收该对象似乎没有的文件。
Asp.Net Core 2.0中有Httpcontext.Current.Request.Files
的替代方案
答案 0 :(得分:7)
在内部控制器上下文和操作中,您可以通过HttpContext.Request.Form.Files
访问文件:
public IActionResult Index()
{
var files = HttpContext.Request.Form.Files;
return View();
}
和外部控制器你必须注入IHttpContextAccessor
。
答案 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
}
请不要复制/粘贴此内容,因为这只是如何操作的一般概念。