private void Save(string path, PictureTransfer picTransfer) { FileStream fileStream = File.Create(path, picTransfer.ContentLength); // Initialize the bytes array with the stream length and then fill it with data byte[] bytesInStream = new byte[picTransfer.ContentLength]; picTransfer.Stream.Read(bytesInStream, 0, bytesInStream.Length); // Use write method to write to the file specified above fileStream.Write(bytesInStream, 0, bytesInStream.Length); fileStream.Close(); }
public ActionResult Edit(ProductDto product, HttpPostedFileBase[] files) { if (ModelState.IsValid) { string physicalPath = Server.MapPath(virtualPath); PictureTransfer[] picTransfers = new PictureTransfer[files.Length]; // specify Picture states for (int i = 0; i < product.ProductPictures.Count(); i++) { ProductPictureDto prodPic = product.ProductPictures.ElementAt(i); if ((Request.Form["changeRadio_" + i] as string) != null) { if ((Request.Form["changeRadio_" + i] as string).Equals("state_deleted")) { picTransfers[i] = new PictureTransfer { State = PictureTransfer.States.Deleted }; //picTransfers[i].State = PictureTransfer.States.Deleted; //System.IO.File.Delete(Server.MapPath(prodPic.FilePath)); } else if ((Request.Form["changeRadio_" + i] as string).Equals("state_updated")) { if (files[i] != null) { picTransfers[i] = new PictureTransfer { State = PictureTransfer.States.Updated, FileName = files[i].FileName, ContentType = files[i].ContentType, ContentLength = files[i].ContentLength, Stream = files[i].InputStream }; //System.IO.File.Delete(Server.MapPath(prodPic.FilePath)); //string virtualPath; //SaveProductPicture(files[i], "~/Images", prodPic, out virtualPath); //ModifyProductPicture(files[i], prodPic, virtualPath); } } else if ((Request.Form["changeRadio_" + i] as string).Equals("state_unchanged")) { picTransfers[i] = new PictureTransfer { State = PictureTransfer.States.Unchanged }; //picTransfers[i].State = PictureTransfer.States.Unchanged; } } else { picTransfers[i] = new PictureTransfer { State = PictureTransfer.States.Added, Stream = files[i].InputStream, ContentType = files[i].ContentType, FileName = files[i].FileName, ContentLength = files[i].ContentLength }; //SaveProductPicture(files[i], "~/Images", prodPic, out virtualPath); //ModifyProductPicture(files[i], prodPic, virtualPath); //prodPic.State = "state_added"; } } _productService.Update(product, virtualPath, physicalPath, picTransfers); ViewBag.Success = true; } ProductDto prod = _productService.Get(p => p.Id.Equals(product.Id)).FirstOrDefault(); prod.ProductPropertyValues = prod.ProductPropertyValues.OrderBy(p => p.ProductTypePropertyOrderNumber).ToList(); prod.ProductPictures = product.ProductPictures.OrderBy(pp => pp.PictureOrder).ToList(); @ViewBag.PicOrders = (IEnumerable <SelectListItem>)prod.ProductPictures .Select(p => new SelectListItem { Text = p.PictureOrder.ToString(), Value = p.PictureOrder.ToString() }); return(View("~/Areas/Admin/Views/Products/Edit.cshtml", prod)); }