【发布时间】:2017-05-11 13:25:25
【问题描述】:
我的控制器中有一个函数,它接收由 ajax 调用发送的文件并将其保存到指定路径。我想知道如何使用模型来完成这项工作,因为我希望发送的数据不仅仅是图像。
视图模型:
public class PhotoViewModel
{
// Other strings
public IFormFile userimage { get; set; }
}
控制器:没有模型(工作)
[HttpPost]
public async Task<IActionResult> Post(IFormFile file)
{
var filePath = Path.GetFullPath(@"C:\Users\me\documents\" + file.FileName);
if (file.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
}
return StatusCode(200);
}
尝试使用模型的版本:
[HttpPost]
public async Task<IActionResult> PhotoData(PhotoViewModel model)
{
var filePath = Path.GetFullPath(@"C:\Users\me\documents\" + model.userimage.FileName);
if (ModelState.IsValid)
{
if (model.userimage.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await model.userimage.CopyToAsync(stream);
}
}
}
return StatusCode(200);
}
这种尝试并没有让我走得太远。通过设置断点,我可以看到它在设置 filePath 时失败,但我不确定如何使用该模型。任何帮助表示赞赏。
【问题讨论】:
标签: asp.net-core-mvc .net-core