Antwort unten ist etwa beta6 Version.
Es ist jetzt im Rahmen. Mit einigen Vorbehalten, um den hochgeladenen Dateinamen zu erhalten, müssen Sie Kopfzeilen analysieren. Und Sie haben IHostingEnvironment in Ihrem Controller zu injizieren zu bekommen Ordnerort wwwroot, weil es nicht mehr Server.MapPath ist()
dieses Nehmen wir als Beispiel:
public class SomeController : Controller
{
private readonly IHostingEnvironment _environment;
public SomeController(IHostingEnvironment environment)
{
_environment = environment;
}
[HttpPost]
public ActionResult UploadFile(IFormFile file)//, int Id, string Title)
{
if (file.Length > 0)
{
var targetDirectory = Path.Combine(_environment.WebRootPath, string.Format("Content\\Uploaded\\"));
var fileName = GetFileName(file);
var savePath = Path.Combine(targetDirectory, fileName);
file.SaveAs(savePath);
return Json(new { Status = "Ok" });
}
return Json(new { Status = "Error" });
}
private static string GetFileName(IFormFile file) => file.ContentDisposition.Split(';')
.Select(x => x.Trim())
.Where(x => x.StartsWith("filename="))
.Select(x => x.Substring(9).Trim('"'))
.First();
}
Dank! Erwähnenswert, dass, da dies den Anfragetext packt, wie es ist, es nur mit nicht-chunked Datei-Uploadern (zB Valums) funktioniert, aber nicht mit neueren, die im Chunked-Format (zB Flow) –