ASP.NET 5 / MVC6在哪里存储上传的文件?

时间:2015-12-10 15:32:54

标签: asp.net-mvc file-upload temporary-files

如果我上传一个文件并且它由Microsoft.AspNet.Http.Features.Internal.FormFile表示,它是否会存储在进程文件系统的任何位置,还是指向仅存在于内存中的字节?

1 个答案:

答案 0 :(得分:1)

基于HttpRequest.Body内存流的FormFile对象。查看有关github

的更多详情
var file = new FormFile(_request.Body, section.BaseStreamOffset.Value, section.Body.Length, name, fileName)
{
    Headers = new HeaderDictionary(section.Headers),
};

您可以调用FormFile.SaveAs()或FormFile.SaveAsAsync()将文件保存在文件系统中:

public class HomeController : Controller
{
    public IHostingEnvironment Hosting { get; set; }

    public async Task<IActionResult> Index(IFormFile file)
    {
        await file.SaveAsAsync(Path.Combine(Hosting.WebRootPath, "storage", "file.txt"));
        //...
    }
}