public async Task <IActionResult> PostMediaArticle(int idArticle, List <IFormFile> files) { long size = files.Sum(f => f.Length); var uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads"); foreach (var file in files) { if (file.Length > 0) { MediaArticle mediaArticle = new MediaArticle(); mediaArticle.Article = await _articleRepository.GetAsync(idArticle); if (mediaArticle.Article != null) { string fileName = $"{rndNumber.Next()}-{idArticle}-{file.FileName}"; Media newMedia = new Media() { Name = fileName, Path = uploads }; await _mediaRepository.InsertAsync(newMedia); mediaArticle.Media = newMedia; await _mediaArticleRepository.InsertAsync(mediaArticle); var filePath = Path.Combine(uploads, fileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream); } } else { return(BadRequest()); } } } return(Ok()); }
public async Task <IActionResult> AddArticlePost(string titre, string text, int idCategory, IFormFile media) { ViewBag.NbreVisitUnique = GetVisitIP(); ViewBag.NbrePagesVues = GetPageVues(); UserConnect(ViewBag); CategoryArticle c = new CategoryArticle { Id = idCategory }; Membres m = new Membres { IdMembre = Convert.ToInt32(ViewBag.Id) }; Article a = new Article { Titre = titre, Texte = text, Categorie = c, Auteur = m, Date = DateTime.Now }; a = a.AddArticle(); string NumeroUnique = Guid.NewGuid().ToString("N"); var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/MediasArticles", a.Id.ToString() + "-" + NumeroUnique + media.FileName); var stream = new FileStream(path, FileMode.Create); await media.CopyToAsync(stream); MediaArticle mediaArticle = new MediaArticle { Url = "images/MediasArticles/" + a.Id.ToString() + "-" + NumeroUnique + media.FileName, IdArticle = a.Id }; mediaArticle.AddMediaArticle(); ArticlesCategoriesViewModel viewModel = new ArticlesCategoriesViewModel { Categories = c.GetAllCategory(), Articles = a.GetAllArticles(null, null) }; return(View("ListArticles", viewModel)); }