public async Task <HttpResponseMessage> UploadLogoFile(int id) { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { return(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType)); } EquipmentModels equipmentModel = new EquipmentModels(); FileUtility fileHelper = new FileUtility(); string root = Path.GetTempPath(); var provider = new MultipartFormDataStreamProvider(root); try { EquipmentModels.Detail equipment = equipmentModel.getEquipmentById(id); } catch { return(Request.CreateResponse(HttpStatusCode.NotFound)); } try { // Read the form data. string fileAbsoluteUri = ""; await Request.Content.ReadAsMultipartAsync(provider); //FileData foreach (MultipartFileData fileData in provider.FileData) { string formColumnName = fileData.Headers.ContentDisposition.Name; string fileExtenionName = fileData.Headers.ContentDisposition.FileName.Split('.')[1]; if (fileHelper.CheckImageExtensionName(formColumnName, fileExtenionName)) { string uploadFilePath = "company-" + equipmentModel.getCompanyId(id) + "/equipment/" + id + "-default." + fileHelper.LowerAndFilterString(fileExtenionName); fileAbsoluteUri = fileHelper.SaveFiletoStorage(fileData.LocalFileName, uploadFilePath, "images"); } } if (fileAbsoluteUri.Equals("")) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "File is empty or wrong extension name")); } //Edit company logo path equipmentModel.updateEquipmentLogoURL(id, fileAbsoluteUri); return(Request.CreateResponse(HttpStatusCode.OK, new { imageURL = fileAbsoluteUri })); } catch (System.Exception ex) { string logAPI = "[Put] " + Request.RequestUri.ToString(); StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex); Startup._sfAppLogger.Error(logAPI + logMessage); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }