Odpowiedź jest o wersji beta6.
Jest teraz w ramach. Z niektórymi zastrzeżeniami do tej pory, aby uzyskać przesłaną nazwę pliku, należy przeanalizować nagłówki. I trzeba wstrzykiwać IHostingEnvironment w kontrolerze, aby dostać się Wwwroot lokalizację folderu, bo nie ma więcej Server.MapPath()
Weź to jako przykład:
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();
}
Dzięki! Warto wspomnieć, że ponieważ chwyta treść żądania tak jak jest, działa tylko z niekasowanymi uploaderami plików (np. Valums), ale nie działa z nowszymi, które przesyłają w formacie chunked (np. Flow) –