Asp.net Base64图片上传
2016-09-06 10:09
801 查看
说明:我的图片服务器地址是自定义的,各位按自己需要配置,另外对base64编码的图片数据做了【<span style="color:#ff6666;">data:image/png;base64,</span><span style="color:#cc66cc;">[base64数据]</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">】 按照颜色划分</span>
1.我的控制器里的一个Action
2.UploadBase64Image 核心业务方法
/// <summary>
/// 上传Base64图片数据
/// </summary>
/// <param name="base64Data">base64 编码的图片数据</param>
/// <param name="url">标准 服务器图片地址</param>
/// <returns></returns>
public static string UploadBase64Image(string base64Data,string url)
{
//1.处理base64字符 data:image/png;base64,
string requestStrValue = base64Data.Substring(base64Data.IndexOf(',') + 1);//代表 图片 的base64编码数据
string requestFileExtension = base64Data.Split(new char[] { ';' })[0].Substring(base64Data.IndexOf('/') + 1);//获取后缀名
//2.将【标准 服务器图片地址】修改为【base64 服务器图片地址】
//base64="base64"&imagename=图片名
string fileName = GuidHelper.GetSecuentialGuid().ToString() + "." + requestFileExtension;
url += "&action=custom&base64=base64&imagename=" + fileName;
//3.准备请求 设置参数
Encoding encoding = Encoding.UTF8;//设置编码格式
HttpWebRequest request = WebRequest.CreateHttp(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
string requestStr = "upfile=" + requestStrValue;//设置数据键值
byte[] postData = encoding.GetBytes(requestStr);
request.ContentLength = postData.Length;
//4.Stream操作
Stream requestStream = null;//建立请求输入流
StreamReader reader = null;//获取服务器返回流
try
{
//4.1输入流写入数据
requestStream = request.GetRequestStream();//获取输入流
requestStream.Write(postData, 0, postData.Length);//将数据读入流中
//4.2输出流读取数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
reader = new StreamReader(response.GetResponseStream(), encoding);
string responseStr = reader.ReadToEnd();//读取返回流数据
return responseStr;//返回Json数据
}
finally
{
if(requestStream != null)
{
requestStream.Close();//关闭输入流
}
if (reader != null)
{
reader.Close(); //关闭输出流
}
}
}
完工!!!
1.我的控制器里的一个Action
/// <summary> /// 上传图片(数据格式base64) /// </summary> public void UploadImg() { //获取上传数据 var data = JSONHelper.GetModel<Dictionary<string, object>>(RequestParameters.data.ToString()); if (data.ContainsKey("image") && !string.IsNullOrEmpty(data["image"].ToString())) { //1.base64图片数据 string allImageStr = data["image"].ToString(); //2.获取标准图片服务器地址 string url = WebConfig.LoadElement("url"); string responseStr = UploadHelper.UploadBase64Image(allImageStr,url); result.Data = responseStr; result.Succeeded = true; result.Msg = "上传成功"; } else { result.Data = ""; result.Succeeded = false; result.Msg = "上传失败"; } }
2.UploadBase64Image 核心业务方法
/// <summary>
/// 上传Base64图片数据
/// </summary>
/// <param name="base64Data">base64 编码的图片数据</param>
/// <param name="url">标准 服务器图片地址</param>
/// <returns></returns>
public static string UploadBase64Image(string base64Data,string url)
{
//1.处理base64字符 data:image/png;base64,
string requestStrValue = base64Data.Substring(base64Data.IndexOf(',') + 1);//代表 图片 的base64编码数据
string requestFileExtension = base64Data.Split(new char[] { ';' })[0].Substring(base64Data.IndexOf('/') + 1);//获取后缀名
//2.将【标准 服务器图片地址】修改为【base64 服务器图片地址】
//base64="base64"&imagename=图片名
string fileName = GuidHelper.GetSecuentialGuid().ToString() + "." + requestFileExtension;
url += "&action=custom&base64=base64&imagename=" + fileName;
//3.准备请求 设置参数
Encoding encoding = Encoding.UTF8;//设置编码格式
HttpWebRequest request = WebRequest.CreateHttp(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
string requestStr = "upfile=" + requestStrValue;//设置数据键值
byte[] postData = encoding.GetBytes(requestStr);
request.ContentLength = postData.Length;
//4.Stream操作
Stream requestStream = null;//建立请求输入流
StreamReader reader = null;//获取服务器返回流
try
{
//4.1输入流写入数据
requestStream = request.GetRequestStream();//获取输入流
requestStream.Write(postData, 0, postData.Length);//将数据读入流中
//4.2输出流读取数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
reader = new StreamReader(response.GetResponseStream(), encoding);
string responseStr = reader.ReadToEnd();//读取返回流数据
return responseStr;//返回Json数据
}
finally
{
if(requestStream != null)
{
requestStream.Close();//关闭输入流
}
if (reader != null)
{
reader.Close(); //关闭输出流
}
}
}
完工!!!
相关文章推荐
- ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)
- asp.net 2中的图片上传
- asp.net上传图片并生成缩略图
- asp.net上传图片并同时生成缩略图
- asp.net上传图片并同时生成缩略图
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 用ASP.NET上传图片并生成带版权信息的缩略图
- 上传图片并生成缩略图(ASP.NET+VB.NET)
- 在ASP.NET中上传图片并生成缩略图的C#代码
- asp.net上传图片并生成缩略图
- asp.net上传图片并同时生成缩略图
- 用ASP.NET上传图片并生成可带版权信息的缩略图
- ASP.NET 上传图片并生成缩略图
- asp.net(c#)上传图片生成缩略图
- asp.net 2中的图片上传
- 用asp.net实现将上传的图片变小存入数据库!(暑假里就开始想做的,很兴奋了)
- ASP.NET上传图片时,产生预览
- asp.net上传图片并同时生成缩略图
- 上传图片到数据库--ASP.NET中常用代码之三 (转载)
- asp.net 文件 和图片上传