public Task<Imagem> UploadInsert(int id) { try { //cria a parta obra if (Request.Content.IsMimeMultipartContent()) { var pathImagem = HttpContext.Current.Server.MapPath("~/Content/images/site/galeria"); var pathThumb = HttpContext.Current.Server.MapPath("~/Content/images/site/galeria/thumbs"); var streamProvider = new GuidMultipartFormDataStreamProvider(pathImagem); var imagem = new Imagem(); var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<Imagem>(t => { var fileName = ""; //verifica se tem imagem if (streamProvider.FileData.Count > 0) { //altera o nome da imagem fileName = streamProvider.GetLocalFileName(streamProvider.FileData[0].Headers); //cria o thumb var combine = Path.Combine(pathImagem, fileName); KalikoImage image = new KalikoImage(combine); KalikoImage thumb = image.Scale(new CropScaling(150, 150)); image.BackgroundColor = Color.White; thumb.SaveJpg(Path.Combine(pathThumb, fileName), 99); //dispose das imagens thumb.Dispose(); image.Dispose(); //inclui no banco de dados imagem.IdSite = id; imagem.Nome = fileName; imagem.Url = fileName; imagem.Thumbnail = fileName; imagem.IsPublico = true; imagem = _service.Imagem.Create(imagem); } return imagem; }); return task; } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } } catch (Exception ex) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, ex.Message)); } }
public Task<string> Upload(int id) { try { //cria a parta obra if (Request.Content.IsMimeMultipartContent()) { var pathImagem = HttpContext.Current.Server.MapPath("~/Content/images/site/banner"); var pathThumb = HttpContext.Current.Server.MapPath("~/Content/images/site/banner/thumbs"); var streamProvider = new GuidMultipartFormDataStreamProvider(pathImagem); var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<string>(t => { var fileName = ""; //verifica se tem imagem if (streamProvider.FileData.Count > 0) { //altera o nome da imagem fileName = streamProvider.GetLocalFileName(streamProvider.FileData[0].Headers); //cria o thumb var combine = Path.Combine(pathImagem, fileName); KalikoImage image = new KalikoImage(combine); KalikoImage thumb = image.Scale(new CropScaling(150, 150)); image.BackgroundColor = Color.White; thumb.SaveJpg(Path.Combine(pathThumb, fileName), 99); //dispose das imagens thumb.Dispose(); image.Dispose(); //verifica se é para atualizar a logomarca if (id > 0) { var banner = _service.Banner.Get(id); banner.Imagem = fileName; banner.Thumbnail = fileName; _service.Banner.Update(banner); } } return fileName; }); return task; } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } } catch (Exception ex) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, ex.Message)); } }