public async Task <IActionResult> Create([Bind("PicGalleryId,Id,Image")] PicCollectionGallery picCollectionGallery, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                if (file == null || file.Length == 0)
                {
                    picCollectionGallery.Image = "1.jpg";
                }
                else
                {
                    var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "metro/img/PicGallery");
                    if (!Directory.Exists(uploadsRootFolder))
                    {
                        Directory.CreateDirectory(uploadsRootFolder);
                    }
                    //جهت جلوگیری از نام تکراری فایل و جایگزینی
                    String guid = Guid.NewGuid().ToString();
                    picCollectionGallery.Image = guid + file.FileName;
                    using (Image img = Image.FromStream(file.OpenReadStream()))
                    {
                        Stream ms = new MemoryStream(img.Resize(272, 273).ToByteArray());

                        //return new FileStreamResult(ms, "image/jpg");

                        var filePath = Path.Combine(uploadsRootFolder, guid + file.FileName);

                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            await ms.CopyToAsync(fileStream).ConfigureAwait(false);
                        }
                    }
                }


                _context.Add(picCollectionGallery);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewData["PicGalleryId"] = new SelectList(_context.PicGallery, "Id", "Name", picCollectionGallery.PicGalleryId);
            return(View(picCollectionGallery));
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("Id,Name,Image,Description,Keywords,Tags")] PicGallery picGallery, IFormFile file, IList <IFormFile> files)
        {
            if (ModelState.IsValid)
            {
                if (file == null || file.Length == 0 && files == null)
                {
                    picGallery.Image = "1.jpg";
                    //pgcViewModel.picCollectionGallery. = "2.jpg";
                }
                else
                {
                    var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "metro/img/PicGallery");
                    if (!Directory.Exists(uploadsRootFolder))
                    {
                        Directory.CreateDirectory(uploadsRootFolder);
                    }
                    //جهت جلوگیری از نام تکراری فایل و جایگزینی
                    String guid = Guid.NewGuid().ToString();

                    picGallery.Image = guid + file.FileName;
                    using (Image img = Image.FromStream(file.OpenReadStream()))
                    {
                        Stream ms = new MemoryStream(img.Resize(470, 480).ToByteArray());

                        //return new FileStreamResult(ms, "image/jpg");

                        var filePath = Path.Combine(uploadsRootFolder, guid + file.FileName);

                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            await ms.CopyToAsync(fileStream).ConfigureAwait(false);
                        }
                    }
                    _context.Add(picGallery);
                    //await _context.SaveChangesAsync();
                    //جهت جلوگیری از نام تکراری فایل و جایگزینی
                    String guid_picgall = Guid.NewGuid().ToString();
                    foreach (var fil in files)
                    {
                        var piccg = new PicCollectionGallery();
                        {
                            piccg.Image        = guid_picgall + fil.FileName;
                            piccg.PicGalleryId = picGallery.Id;
                        }
                        //using (Image img = Image.FromStream(files.OpenReadStream()))
                        //{
                        //    Stream ms = new MemoryStream(img.Resize(1920, 585).ToByteArray());

                        //return new FileStreamResult(ms, "image/jpg");

                        var filePath = Path.Combine(uploadsRootFolder, guid_picgall + fil.FileName);

                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            await fil.CopyToAsync(fileStream).ConfigureAwait(false);
                        }
                        _context.Add(piccg);
                    }
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(picGallery));
        }
        public async Task <IActionResult> Edit(int id, [Bind("PicGalleryId,Id,Image")] PicCollectionGallery picCollectionGallery, IFormFile file)
        {
            if (id != picCollectionGallery.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    //جهت برطرف کردن خطای سازنده باز بودن ترک قبل از عملیات پردازش EF7
                    var original = _context.PicCollectionGallery.AsNoTracking().FirstOrDefault(p => p.Id == id);
                    if (file != null)
                    {
                        var           uploadsRootFolder = Path.Combine(_environment.WebRootPath, "metro/img/PicGallery");
                        DirectoryInfo directory         = new DirectoryInfo(uploadsRootFolder);
                        //Directory.GetFiles(uploadsRootFolder + originalPerson.Image);
                        //چک میکنیم تا عکس پیش فرض رو پاک نکند
                        if (original.Image != "1.jpg")
                        {
                            foreach (FileInfo fileEF in directory.GetFiles())
                            {
                                if (fileEF.Name.Equals(original.Image))
                                {
                                    fileEF.Delete();
                                }
                            }
                        }
                        picCollectionGallery.Image = file.FileName;
                        using (Image img = Image.FromStream(file.OpenReadStream()))
                        {
                            Stream ms = new MemoryStream(img.Resize(272, 273).ToByteArray());

                            //return new FileStreamResult(ms, "image/jpg");

                            var filePath = Path.Combine(uploadsRootFolder, file.FileName);

                            using (var fileStream = new FileStream(filePath, FileMode.Create))
                            {
                                await ms.CopyToAsync(fileStream).ConfigureAwait(false);
                            }
                        }
                    }
                    else
                    {
                        picCollectionGallery.Image = original.Image;
                    }

                    _context.Update(picCollectionGallery);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PicCollectionGalleryExists(picCollectionGallery.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            ViewData["PicGalleryId"] = new SelectList(_context.PicGallery, "Id", "Name", picCollectionGallery.PicGalleryId);
            return(View(picCollectionGallery));
        }