如何使用“编辑”操作将照片保存到wwwroot?

时间:2019-05-05 15:45:01

标签: asp.net-mvc image

编辑时,无法将图像保存到本地的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"); 
       }

0 个答案:

没有答案