【C#】HTTP post 上传图片及参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【C#】HTTP post 上传图片及参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2826字,纯文字阅读大概需要5分钟。
内容图文
一、具体代码
1 /// <summary> 2 /// 通过http上传图片及传参数 3 /// </summary> 4 /// <param name="imgPath">图片地址(绝对路径:D:\demo\img\123.jpg)</param> 5 public void UploadImage(string imgPath) 6 { 7 var uploadUrl = "http://localhost:3020/upload/imgup"; 8 var dic = new Dictionary<string, string>() { 9 {"para1",1.ToString() }, 10 {"para2",2.ToString() }, 11 {"para3",3.ToString() }, 12 }; 13 var postData = Utils.BuildQuery(dic);//转换成:para1=1¶2=2¶3=3 14 var postUrl = string.Format("{0}?{1}", uploadUrl, postData);//拼接url 15 HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest; 16 request.AllowAutoRedirect = true; 17 request.Method = "POST"; 18 19 string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线 20 request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary; 21 byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n"); 22 byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); 23 24 int pos = imgPath.LastIndexOf("\\"); 25 string fileName = imgPath.Substring(pos + 1); 26 27 //请求头部信息 28 StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName)); 29 byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString()); 30 31 FileStream fs = new FileStream(imgPath, FileMode.Open, FileAccess.Read); 32 byte[] bArr = new byte[fs.Length]; 33 fs.Read(bArr, 0, bArr.Length); 34 fs.Close(); 35 36 Stream postStream = request.GetRequestStream(); 37 postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length); 38 postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); 39 postStream.Write(bArr, 0, bArr.Length); 40 postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); 41 postStream.Close(); 42 43 HttpWebResponse response = request.GetResponse() as HttpWebResponse; 44 Stream instream = response.GetResponseStream(); 45 StreamReader sr = new StreamReader(instream, Encoding.UTF8); 46 string content = sr.ReadToEnd(); 47 }
可以把第7行的直接写成拼接形式,这样第8-13行可以删掉,第十四行可换成:
var postUrl = uploadUrl;
设置参数名:
将第28行,name后面的file修改成你想要的参数名即可。
二、具体使用
string imgPath = “”;//绝对地址 string posjson = UploadImage(string imgPath);
内容总结
以上是互联网集市为您收集整理的【C#】HTTP post 上传图片及参数全部内容,希望文章能够帮你解决【C#】HTTP post 上传图片及参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。