Ich habe eine Funktion in meinem Controller, die eine Datei von einem AJAX-Aufruf gesendet und speichert es in einem angegebenen Pfad. Ich habe mich gefragt, wie ich das mit einem Modell machen könnte, da ich hoffe, mehr Daten als nur das Bild zu senden.Machen Sie IFormFile Funktion, um mit Modell zu arbeiten
Ansichtsmodell:
public class PhotoViewModel
{
// Other strings
public IFormFile userimage { get; set; }
}
Controller: Ohne Modell (Arbeits)
[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);
}
Versuch Version mit Modell:
[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);
}
Dieser Versuch bringt mich nicht weit. Durch das Setzen eines Haltepunkts kann ich feststellen, dass es beim Festlegen von filePath fehlschlägt, aber ich bin mir nicht sicher, wie ich mit dem Modell arbeiten soll. Jede Hilfe wird geschätzt.