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)); }
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)); }