как я могу сохранить фотографию в wwwroot с помощью действия Edit? - PullRequest
0 голосов
/ 05 мая 2019

Я не могу сохранить изображения в моем приложении 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"); 
       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...