我正在将ASP.NET 5 RC与Visual Studio 2015一起使用。
我有一个ViewModel定义:
public class TeamVM
{
public IFormFile UploadedLogo { get; set; }
}
和一个 Controller :
[HttpPost]
public IActionResult Create(TeamVM vm)
{
vm.UploadedLogo.SaveAs("filename.txt"); // Problem here - There is no SaveAs method
return View();
}
问题在于,智能感知表明没有
SaveAs()
方法。我发现here这个接口(interface)实际上没有SaveAs()
方法。此外,我意识到,如果将
IFormFile
更改为ICollection<IFormFile>
并循环遍历,则IFormFile
实例的集合将定义了SaveAs()
方法。就而言,我想使用
IFormFile
而不是ICollection<IFormFile>
。如何使用
IFormFile
将文件保存到系统中的正确方法? 最佳答案
我遵循了@garethb here建议的链接,并按建议使用了扩展方法。有用!
ASP.NET RC1的解决方案:
要包含的命名空间
using Microsoft.AspNet.Http;
Controller Action
[HttpPost]
public IActionResult Create(TeamVM vm)
{
FormFileExtensions.SaveAs(vm.UploadedLogo, "C:\pathTofile");
return View();
}
此答案归功于@garethb。
ASP.NET RC2的解决方案:
要包含的命名空间
using Microsoft.AspNetCore.Http;
using System.IO;
Controller Action
[HttpPost]
public IActionResult Create(TeamVM vm)
{
// Make sure the path to the file exists
vm.UploadedLogo.CopyTo(new FileStream("C:\pathTofile", FileMode.Create));
return View();
}
关于c# - 如何在ASP.NET 5 RC1 MVC中使用IFormFile保存上传的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37153261/