我有一个将数据添加到SQL数据库并将图像上传到服务器的功能。
我将图像转换为base64字符串以发送它与我的帖子,但我读到图像大小比原始文件大33%。我想改变它,但我不知道如何。
这是我的代码:
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);
}
我正在测试Postman或JQuery的web api
答案 0 :(得分:1)
尝试使用Mulitpart / Fromdata帖子。使用此功能,您可以同时发送文件和JSON数据。但是,您需要更改API以读取multipartformdata。这样,与base64string相比,文件大小会更小。
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select pass from admin where nama='admin'");
if (rs.next()) {
String n = rs.getString(1);
if (n == nama) {
Pegawai.setEnabled(true);
InputCuti.setEnabled(true);
DataCuti.setEnabled(true);
DataCuti1.setEnabled(true);
//in this part I want to stop the loop.
} else {
Pegawai.setEnabled(false);
InputCuti.setEnabled(false);
DataCuti.setEnabled(true);
DataCuti1.setEnabled(true);
}
}