public async Task <HttpResponseMessage> UploadImage(int id, string extension, bool?isMain = false) { string PATH = HttpContext.Current.Server.MapPath("~/" + BusinessSettings.ClassifiedImageFolderBase); //string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); string imageData = await Request.Content.ReadAsStringAsync(); byte[] bytes; try { bytes = Convert.FromBase64String(imageData); } catch (Exception) { throw new HttpResponseException(ErrorMessage("خطأ في عملية رفع الصورة")); } Image image; Guid g = Guid.NewGuid(); using (MemoryStream ms = new MemoryStream(bytes)) { image = Image.FromStream(ms); switch (extension.ToLower()) { case "jpg": image.Save(PATH + "/" + g.ToString() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); break; case "png": image.Save(PATH + "/" + g.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png); break; case "gif": image.Save(PATH + "/" + g.ToString() + ".gif", System.Drawing.Imaging.ImageFormat.Gif); break; default: break; } } var model = new InputClassifiedImageModel() { ClassifiedId = id, ImageExtension = Path.GetExtension("." + extension.ToLower()), ImageGuid = g.ToString(), IsMainImage = isMain.HasValue ? isMain.Value : false }; if (_classifiedService.AddClassifiedImage(model) == null) { throw new HttpResponseException(ErrorMessage("خطأ في عملية رفع الصورة")); } return(OkMessage("تم الرفع بنجاح")); //if (Request.Content.IsMimeMultipartContent()) //{ // var streamProvider = new MyFormDataStreamProvider(PATH); // await Request.Content.ReadAsMultipartAsync(streamProvider); // if(!streamProvider.FileData.Any()) // throw new HttpResponseException(ErrorMessage("لا يمكن تحميل الملف المطلوب")); // MultipartFileData file = streamProvider.FileData[0]; // var model = new InputClassifiedImageModel() // { // ClassifiedId = id, // ImageExtension = Path.GetExtension(file.LocalFileName), // ImageGuid =Path.GetFileNameWithoutExtension(file.LocalFileName), // IsMainImage = isMain.HasValue ? isMain.Value : false // }; // return _classifiedService.AddClassifiedImage(model); //} //else //{ // throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); //} }