I have a function which adds data to a SQL Database and upload an image(s) to the server.
I convert the image into base64 string to send it with my post but I read that the image size is 33% bigger than the original file. I would like to change that but I don't how.
This is my code:
public async Task<IHttpActionResult> Post([FromBody]Post userpost)
{
if (ModelState.IsValid)
{
int postid = Convert.ToInt32(postDB.AddPost(userpost));
if (userpost.fileBody.Length > 0)
{
var filename = string.Format("{0}_{1}{2}", postid, Guid.NewGuid().ToString(), ".jpg");
var ms = new MemoryStream(Convert.FromBase64String(userpost.fileBody));
await upload.UploadFile(filename, ms, "image/jpg","images");
ms.Close();
return Content(HttpStatusCode.Accepted, "{\"pic\":\"" + filename + "\"}");
}
else
return Ok(HttpStatusCode.OK);
}
else
return Ok(HttpStatusCode.NotAcceptable);
}
I'm test the web api by Postman or JQuery