欢迎大家来到IT世界,在知识的湖畔探索吧!
在开发程序的时候 ,经常会碰到要将图片转成base64位的格式存储并调用,或者将图片的路径转换为图片进行保存,图片转为base64编码这个很容易,这个不用多说,下面小编主要介绍一下异步将base64编码的字符串按定义好的目录转为图片并保存处理过程:
一、异步将base64编码的字符串按定义好的目录转为图片并保存的方法
public async Task SaveBase64Image(string strBase64, string imageDir = null, decimal subsidiary_id = 0)
{
///, string strBase64, string imageDir = null, decimal subsidiary_id = 0, decimal KindergartenID = 0
var task = Task.Run(() =>
{
try
{
if (subsidiary_id > 0 && !string.IsNullOrEmpty(imageDir))
{
string strbase64 = strBase64.Substring(strBase64.IndexOf(‘,’) + 1);
strbase64 = strbase64.Trim(‘\0’);
byte[] arr = Convert.FromBase64String(strbase64);
using (MemoryStream ms = new MemoryStream(arr))
{
Bitmap bmp = new Bitmap(ms);
//目录
string filePath = Path.GetDirectoryName(imageDir);
if (!Directory.Exists(Server.MapPath(filePath)))
{
//Log.Debug(“没有Directory”);
Directory.CreateDirectory(Server.MapPath(filePath));
}
//if (!Directory.Exists(filePath))
// Log.Debug(“没有Directory”);
//Directory.CreateDirectory(filePath);
//新建第二个bitmap类型的bmp2变量。
Bitmap bmp2 = new Bitmap(bmp, bmp.Width, bmp.Height);
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, 0, 0);
draw.Dispose();
bmp2.Save(Server.MapPath(imageDir), System.Drawing.Imaging.ImageFormat.Jpeg);
ms.Close();
}
}
}
finally
{
}
});
await task;
}
#endregion
二、用post方式异步上传图片 调用上述方法:
#region 异步上传图片
var postUrl = “http://0.0.0.0/SaveCatalogBase64Image”;
WebRequest request7 = WebRequest.Create(postUrl);
request7.Method = “POST”;
//post传参数
string postdata = “strBase64=” + HttpContext.Current.Server.UrlEncode(model.strBase64) + “&subsidiary_id=1&imageDir=” + photourl;
byte[] bytes = Encoding.ASCII.GetBytes(postdata);
request7.Timeout = 5000;
request7.ContentType = “application/x-www-form-urlencoded”;
request7.ContentLength = postdata.Length;
Stream sendStream = request7.GetRequestStream();
sendStream.Write(bytes, 0, bytes.Length);
sendStream.Close();
#endregion
至此,c#用post方式异步上传图片方法已经介绍完毕,大家还有没有更好地解决方式,欢迎讨论!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/34668.html