Я не могу сохранить изображения в моем приложении Asp.Net локально при редактировании.
В моем Create HttpPost я использую CreateNewsViewModel
, где мое изображение имеет тип IFormFile
. Затем он сохраняется в моей папке wwwroot / images.
Я хочу сделать то же самое, когда редактирую новости. Я хочу, чтобы новое изображение было сохранено в той же папке. Как мне это сделать? Я не могу использовать ту же логику, потому что NewsViewModel
использует строку как изображение.
Если я использую IFormFile, я должен изменить свою сущность в EF, чтобы использовать IFormFile
. Я могу изменить все, чтобы использовать IFormFile
, проблема будет заключаться в сохранении имени изображения, потому что imageNametoSave имеет тип string и для него потребуется тип IFormFile
.
Пожалуйста помоги.
[HttpPost]
[ValidateAntiForgeryToken]
public asyncTask<IActionResult> Create(CreateNewsViewModel model)
{
var imageNameToSave = Guid.NewGuid() + ".jpg";
var role = await this.newsService.CreateNewsAsync(model.CreatedOn, model.Title, model.Text, imageNameToSave);
using (var ms = new MemoryStream())
{
model.Image.CopyTo(ms);
var uploads = Path.Combine(hostingEnvironment.WebRootPath, "images");
var filePath = Path.Combine(uploads, imageNameToSave);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await model.Image.CopyToAsync(fileStream);
}
}
return this.RedirectToAction("Index", "Home");
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(string oldName, NewsViewModel model)
{
await this.newsService.EditNewsTextAsync(oldName, model);
return this.RedirectToAction("Index", "News");
}