编辑时,无法将图像保存到本地的Asp.Net应用程序中。
在我的创建HttpPost中,我正在使用CreateNewsViewModel
,其中我的图像的类型为IFormFile
。然后将其保存到我的wwwroot / images文件夹。
编辑新闻时我想做同样的事情。我希望将新图像保存到同一文件夹中。我该怎么做?我无法使用相同的逻辑,因为NewsViewModel
使用字符串作为图像。
如果使用IFormFile,则必须在EF中将Entity更改为也使用IFormFile
。我可以更改所有内容以使用IFormFile
,然后问题将是保存图像名称,因为imageNametoSave的类型为字符串,并且需要类型为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");
}