コード例 #1
0
        public async Task <IActionResult> AddPrincPhoto(IFormFile image, int idPerso, string photoPrincipale)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();


            UserConnect(ViewBag);
            ConsentCookie(ViewBag);

            Personnage p = new Personnage {
                Id = idPerso
            };

            p = p.GetPersoID(idPerso);

            if (photoPrincipale == "yes")
            {
                foreach (PhotoPerso photo in p.Photos)
                {
                    photo.PhotoPrincipale = false;
                }
            }


            if (image.FileName.Contains(".png") || image.FileName.Contains(".jpg"))
            {
                if (image.Length > 1000000)
                {
                    ViewBag.errors = "Le fichier doit avoir une taille maximale de 1Mo.";
                    return(View("AddPersos", p));
                }
                string NumeroUnique = Guid.NewGuid().ToString("N").Substring(1, 10);

                if (image.FileName.Contains(".png"))
                {
                    var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/PhotosPersos", p.Id.ToString() + "-" + p.Nom.ToString() + "-" + p.Prenoms[0].Prenom.ToString() + "-" + NumeroUnique + ".png");
                    var stream = new FileStream(path, FileMode.Create);
                    await image.CopyToAsync(stream);

                    PhotoPerso photo = new PhotoPerso
                    {
                        Url             = "images/PhotosPersos/" + p.Id.ToString() + "-" + p.Nom.ToString() + "-" + p.Prenoms[0].Prenom.ToString() + "-" + NumeroUnique + ".png",
                        IdPerso         = p.Id,
                        PhotoPrincipale = true
                    };

                    p.Photos.Add(photo);
                }

                if (image.FileName.Contains(".jpg"))
                {
                    var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/PhotosPersos", p.Id.ToString() + "-" + p.Nom.ToString() + "-" + p.Prenoms[0].Prenom.ToString() + "-" + NumeroUnique + ".jpg");
                    var stream = new FileStream(path, FileMode.Create);
                    await image.CopyToAsync(stream);

                    PhotoPerso photo = new PhotoPerso
                    {
                        Url             = "images/PhotosPersos/" + p.Id.ToString() + "-" + p.Nom.ToString() + "-" + p.Prenoms[0].Prenom.ToString() + "-" + NumeroUnique + ".jpg",
                        IdPerso         = p.Id,
                        PhotoPrincipale = true
                    };

                    p.Photos.Add(photo);
                }
            }
            else
            {
                ViewBag.errors = "Seuls les fichiers .jpg ou .png sont accceptés";
                return(View("AddPersos", p));
            }


            p = p.AddPhotos();

            return(View("AddPersos", p));
        }