C#后台代码 Post 提交表单上传文件及其他信息
2017-03-15 17:16
639 查看
后台模拟表单上传图片及内容信息
///开始调用//定义访问地址
string URL =
"http://192.168.1.220:9001/verify/face/search";
//定义上传图片绝对路径
string Path = @"D\\test_Head.jpg";
NameValueCollection
myCol = new NameValueCollection();
myCol.Add("dbName",dbName);
myCol.Add("topNum",topNum);
myCol.Add("score",score);
string json = HttpUploadFile(URL,Path,
"imageData", "image/jpeg", myCol);
///<summary>
///
///</summary>
///<param name="url">访¤?问¨º地Ì?址¡¤</param>
///<paramname="file">文?件t绝?对?路¡¤径?</param>
///<paramname="paramName">文?件t参?数ºy名?</param>
///<paramname="contentType">文?件t类¤¨¤型¨ª</param>
///<paramname="nvc">其?它¨¹文?本À?内¨²容¨Y</param>
///<returns></returns>
public
string HttpUploadFile(stringurl,
string file, stringparamName,
string contentType,
NameValueCollection nvc)
{
//log.Debug(string.Format("Uploading{0} to {1}", file, url));
stringboundary =
"---------------------------"+ DateTime.Now.Ticks.ToString("x");
byte[]boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary +
"\r\n");
HttpWebRequestwr = (HttpWebRequest)WebRequest.Create(url);
wr.ContentType = "multipart/form-data; boundary=" +boundary;
wr.Method = "POST";
wr.KeepAlive = true;
wr.Credentials = System.Net.CredentialCache.DefaultCredentials;
Streamrs = wr.GetRequestStream();
stringformdataTemplate =
"Content-Disposition:form-data; name=\"{0}\"\r\n\r\n{1}";
foreach(string key
innvc.Keys)
{
rs.Write(boundarybytes, 0,boundarybytes.Length);
stringformitem =
string.Format(formdataTemplate, key,nvc[key]);
byte[]formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
rs.Write(formitembytes, 0,formitembytes.Length);
}
rs.Write(boundarybytes, 0,boundarybytes.Length);
stringheaderTemplate =
"Content-Disposition:form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type:{2}\r\n\r\n";
stringheader =
string.Format(headerTemplate, paramName,file, contentType);
byte[]headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
rs.Write(headerbytes, 0,headerbytes.Length);
FileStreamfileStream =
new FileStream(file,FileMode.Open,
FileAccess.Read);
byte[]buffer =
new byte[4096];
intbytesRead = 0;
while((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
rs.Write(buffer, 0, bytesRead);
}
fileStream.Close();
byte[]trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary +
"--\r\n");
rs.Write(trailer, 0,trailer.Length);
rs.Close();
HttpWebResponseresponse;
try
{
response = (HttpWebResponse)wr.GetResponse();
}
catch(WebException ex)
{
response = (HttpWebResponse)ex.Response;
}
using(Stream responseStream =response.GetResponseStream())
{
using(StreamReader myStreamReader =
new StreamReader(responseStream,
Encoding.UTF8))
{
stringretString = myStreamReader.ReadToEnd();
returnretString;
}
}
}
相关文章推荐
- 表单提交上传文件代码(Ext,C#)
- Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form me
- 使用java ssm框架后台模拟post上传文件并提交表单数据
- Asp.Net模拟表单提交数据和上传文件的实现代码
- 解决post提交表单(文件上传) request.getParameter 取值为空的问题
- php表单提交,get 、post 和文件上传
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- php 利用fsockopen GET/POST 提交表单及上传文件
- httpurlconnection模拟post提交form表单(普通文本和上传文件) (
- c# 模拟表单提交,post form 上传文件、大数据内容
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
- android 文件上传(POST方式模拟表单提交)
- jq表单上传多文件 前后台代码
- 用C#代码以Post方式提交页面,与信息传输安全性
- c# 模拟表单提交,post form 上传文件、大数据内容
- android 表单提交 (支持多文件上传) + 服务端代码
- php 利用fsockopen GET/POST 提交表单及上传文件
- C#模拟web请求,使用post提交带有文件的数据表单
- c# 模拟提交带文件上传的表单