- 浏览: 192281 次
- 性别:
- 来自: 广州
文章分类
最新评论
后台处理代码:
控制台发送数据
服务端用到的两个子方法:
备注:
转化和接收的原理:
1、在发送时将图片转成byte数组
2、将数组进行ToBase64String
3、最后在对串进行UrlEncode操作
4、将最后的参数以常用参数形式发送到服务端
5、服务端接收图片字符串后,先UrlDecode(处理后可能会有空格,如果有空格,需要用+做替换,否则base的时候会提示字符串格式不正确),再FromBase63String,最后再存到本地文件中
HttpRequest request = System.Web.HttpContext.Current.Request; string name = request.Form["name"].ToString(); string pwd = request.Form["pwd"].ToString(); string img = request.Form["img"].ToString(); //图片是先转byte数组,然后ToBase64String,最后在做UrlEncode string array = HttpUtility.UrlDecode(img); //将数据转为未做UrlEncode时的串 array = array.Replace(' ','+'); //将空格用+补齐 byte[] old; try { old = Convert.FromBase64String(array); //将ToBase64的串,还原为byte数组 } catch(Exception e) { return ResponseResult.GenFaildResponse(e.Message); } CreateImageFromBytes("file1", old); //调用方法保存在本地 return ResponseResult.GenSuccessResponse(ResultCode.Success);
控制台发送数据
string url = "http://localhost:4806/WebApi/V1/Account/ChangeUserCard3"; string userName = "123"; string userPwd = "456"; string jpegPath = "c:\\123456.png"; //将图片转化为byte[]再转化为string string array = Convert.ToBase64String(ReadImageFile(jpegPath)); string img = HttpUtility.UrlEncode(array); //构造post提交字段 string para = "name="+userName + "&pwd=" + userPwd + "&img=" + img; #region HttpWebRequest写法 HttpWebRequest httpWeb = (HttpWebRequest)WebRequest.Create(url); //httpWeb.Timeout = 20000; //超时时间可以不设置 httpWeb.Method = "POST"; httpWeb.ContentType = "application/x-www-form-urlencoded"; byte[] bytePara = Encoding.ASCII.GetBytes(para); using (Stream reqStream = httpWeb.GetRequestStream()) { //提交数据 reqStream.Write(bytePara, 0, para.Length); } //获取服务器返回值 HttpWebResponse httpWebResponse = (HttpWebResponse)httpWeb.GetResponse(); Stream stream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8")); //获得返回值 string result = streamReader.ReadToEnd(); stream.Close(); #endregion Console.WriteLine(result); Console.ReadKey();
服务端用到的两个子方法:
#region 将byte[]转为 Image对象 /// <summary> /// 将byte[]转为 Image对象 /// </summary> /// <param name="buffer">图片的byte数组</param> /// <returns></returns> public static Image BytesToImage(byte[] buffer) { MemoryStream ms = new MemoryStream(buffer); Image image = System.Drawing.Image.FromStream(ms); return image; } #endregion #region 将byte[] 转为图片并保存到本地 /// <summary> /// 将byte[] 转为图片并保存到本地 /// </summary> /// <param name="fileName">要保存的文件名(不带后缀)</param> /// <param name="buffer">二进制图片</param> /// <returns></returns> public static string CreateImageFromBytes(string fileName, byte[] buffer) { string file = fileName; Image image = BytesToImage(buffer); ImageFormat format = image.RawFormat; if (format.Equals(ImageFormat.Jpeg)) { file += ".jpeg"; } else if (format.Equals(ImageFormat.Png)) { file += ".png"; } else if (format.Equals(ImageFormat.Bmp)) { file += ".bmp"; } else if (format.Equals(ImageFormat.Gif)) { file += ".gif"; } else if (format.Equals(ImageFormat.Icon)) { file += ".icon"; } System.IO.FileInfo info = new System.IO.FileInfo(file); System.IO.Directory.CreateDirectory(info.Directory.FullName); File.WriteAllBytes(file, buffer); return file; } #endregion
备注:
转化和接收的原理:
1、在发送时将图片转成byte数组
2、将数组进行ToBase64String
3、最后在对串进行UrlEncode操作
4、将最后的参数以常用参数形式发送到服务端
5、服务端接收图片字符串后,先UrlDecode(处理后可能会有空格,如果有空格,需要用+做替换,否则base的时候会提示字符串格式不正确),再FromBase63String,最后再存到本地文件中
发表评论
-
枚举类型帮助类 EnumHelper
2019-09-02 11:29 529项目中出现的问题: 项目中会有很多地方用到文字提醒,如果在每个 ... -
C# zip文件解压压缩帮助类
2019-08-30 11:43 598原文: https://www.cnblogs.com/sun ... -
使用ITextSharp对pdf文件打水印
2019-08-19 17:13 819在项目中需要对pdf文件中的部分信息进行遮挡隐藏,于是找到了I ... -
HMAC_SHA1加密
2019-08-16 10:36 1002hmacsha1在很多签名计算中都很常用了,这里对两种可能返回 ... -
.NET/java Office组件神器——Aspose.Total 17.x/18.x/19.x破解版+破解补丁下载【转】
2019-07-29 15:22 2719先上大神的网站地址: [url] https://masuit ... -
通过UserAgent判断智能手机(设备,Android,IOS)【转】
2019-07-02 17:51 1057///<summary> /// ... -
8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码【转】
2019-06-12 17:36 2409服务器使用了word的类库,在使用过程中日志报标题错误 解决 ... -
C#(同步调用、异步调用、异步回调)--转
2019-06-05 12:04 720本文将主要通过“同步调用”、“异步调用”、“异步回调”三个示例 ... -
C# 利用word书签写入自定义数据
2019-05-14 18:08 658原文参考地址: https://www.cnblogs.com ... -
C# 项目中引用office组件后在服务器遇到的问题集锦
2019-02-13 16:03 9621、要在服务器安装相同版本的office完整版程序 本地测试机 ... -
C# word转pdf
2019-01-17 14:55 693写在最前面,如果要部署,服务器需要安装相同版本的office, ... -
C# 操作word
2019-01-17 14:49 534需要单独引入的是COM中的Microsoft Office 1 ... -
给上传的文件生成缩略图(图片和视频)
2018-11-28 17:47 895备注:里面用到的ffmpeg ... -
获取视频文件的截图
2018-11-28 17:36 729视频获取第一帧截图的方法: https://www.cnblo ... -
excel文件转为DataTable
2018-11-02 17:38 1605在人员初始化的时候,通常会用到excel编辑好,导入到数据库中 ... -
DataTable导出excel
2018-11-02 16:36 1160网上有很多关于导出的例子,这里讲一个利用NPOI导出excel ... -
未能加载文件或程序集,System.Net.Http或它的某一个依赖项。系统找不到指定的文件。
2018-10-30 17:21 4894具体的错误描述: 未能加载文件或程序集“System.Net. ... -
将app请求的简单json串转化为字典
2017-11-16 11:18 828通过Newtonsoft的DeserializeObject& ... -
WebAPI启用session功能
2017-11-16 11:04 1777第一步:简单建立两个类,以备修改WebApi的路由方式 第一 ... -
webapi记录请求和返回日志
2017-11-15 17:12 2171需求: 记录每个接口的请求参数及返回参数,方便以后回溯 fi ...
相关推荐
本篇文章将深入探讨如何在C#中通过POST方式提交Form表单,包括其原理、步骤和实际代码示例。 一、POST提交表单的基本原理 POST是HTTP协议中的一个方法,用于向服务器发送数据,特别是当数据量较大或者包含敏感信息...
在C#编程中,模拟POST提交通常用于模拟用户在网页上的表单提交行为,例如上传文件,特别是图片。这个过程涉及到HTTP协议的理解、文件流处理以及服务器端的存储逻辑。以下将详细介绍如何实现这个功能。 首先,理解...
1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。 2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 ...
### C#以POST方式模拟提交表单 - 关键知识点解析 #### 一、知识点概览 本文档将基于“c#以POST方式模拟提交表单”这一主题进行深入解析,主要内容涉及C#语言如何实现HTTP POST请求来模拟提交表单数据,并通过具体的...
本主题将探讨如何在C# Winform应用程序中与网页表单进行交互,包括数据的提交和获取。 首先,Winform是.NET Framework提供的一种创建Windows桌面应用程序的方式。在Winform应用中,用户界面通常由各种控件(如按钮...
在这个过程中,`a.aspx`页面作为客户端表单的发起者,通过POST或GET方法将数据提交到`b.aspx`页面进行处理,然后`b.aspx`根据接收到的数据进行业务逻辑操作,并可能返回相应的结果给用户。 1. **HTML表单(Form)**...
1. **理解multipart/form-data**:`multipart/form-data`主要用于提交表单,特别是当表单中包含文件上传时。每个部分之间用分隔符(如`--Boundary`)进行区分,每个部分都有自己的Content-Type和可选的头部信息。 2...
根据给定的信息,本文将详细解释如何在C#中通过HTTP POST请求提交图片,并解析相关的代码片段。 ### C# Post提交图片 #### 一、基础知识介绍 在Web开发中,客户端经常会向服务器发送图片等多媒体文件。这通常通过...
在本文中,我们将深入探讨如何使用C#进行HTTP文件上传,特别是针对图片文件,并将其提交到PHP后台。这个过程在很多Web应用中都是常见的需求,例如用户上传头像或者在线文件分享。标题中的"最简单的实现方式"和描述中...
在本主题中,我们将深入探讨如何使用C#来模拟POST请求,以便发送JSON和multipart/form-data格式的数据。这两种数据格式在现代网络应用中非常常见,特别是用于API交互和文件上传。 首先,让我们了解JSON(JavaScript...
以下是一个简单的示例,展示了如何使用C#模拟表单提交: ```csharp using System; using System.IO; using System.Net; public class Program { public static void Main() { string url = ...
当用户在表单中选择文件并提交时,浏览器会将文件内容分割成多个部分,并为每个部分添加边界标识,以便服务器可以正确解析这些数据。每部分的数据都包含一个Content-Disposition头,用于指定字段名或文件名,以及...
在C# WinForm应用中,提交表单到网页并接收反馈数据是一项常见的任务,这通常涉及到网络编程和HTTP协议的理解...通过学习和实践这些知识点,你将能够熟练地在C# WinForm应用中实现向网页提交表单并获取反馈数据的功能。
本主题聚焦于“C#提交表单生成XML”,这是一个关于数据交互和存储的常见任务,涉及到网络请求、HTML解析、XML处理以及数据库操作等多个知识点。 首先,让我们详细讨论如何在C#中提交表单。在Web开发中,表单提交...
在IT领域,特别是Web开发中,使用C#通过POST方式提交数据是一项常见且重要的技能。以下将详细解析如何使用C#实现POST请求,包括构造请求、设置参数、发送数据及处理响应。 ### C# POST请求的基本流程 1. **创建...
1. 序列化对象为JSON:首先,定义一个C#对象,然后使用Json.NET的`JsonConvert.SerializeObject`方法将其转换为JSON字符串。 ```csharp public class MyData { public string Field1 { get; set; } public int ...
本篇文章将详细探讨如何在C#中处理`multipart/form-data`和JSON格式的数据。 `multipart/form-data`是HTTP协议中一种用于上传文件或发送复杂数据(如带有文件的表单数据)的Content-Type。在C#中,我们可以使用...
在.NET编程环境中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用。当涉及到与服务器进行数据交互时,HTTP POST请求是非常常见的操作。在某些情况下,接口可能需要我们同时上传文件和额外的参数,这...
#### 二、传统Form表单Action属性提交 传统的HTML表单提交方式是通过`<form>`标签的`action`属性指定服务器端处理表单数据的URL路径。 **示例**: ```html <form action="/Star/Apply" method="post"> <!-- 表单...