Asp.net Base64图片上传
说明:我的图片服务器地址是自定义的,各位按自己需要配置,另外对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
/// <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(); //关闭输出流 } } }
完工!!!
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: c#与java中byte字节的区别及转换方法
- 下一篇:没有了