/// <summary>
/// 模拟form表单上传
/// </summary>
/// <param name="url">路径</param>
/// <param name="buffer">数据流</param>
/// <param name="fileName">文件名称</param>
/// <returns>返回响应信息</returns>
private static string UploadFilesToRemoteUrl(string url, byte[] buffer, string fileName)
{
string boundary = "----------" + DateTime.Now.Ticks.ToString("x");
System.Net.ServicePointManager.DefaultConnectionLimit = 50;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Credentials = System.Net.CredentialCache.DefaultCredentials;
myReq.Timeout = 5 * 60 * 1000;
myReq.Method = "POST";
myReq.ContentType = "multipart/form-data; boundary=" + boundary;
StringBuilder sb = new StringBuilder();
sb.Append("--" + boundary + "\r\n");
sb.Append("Content-Disposition: form-data; name=\"fileName \"; filename=\"e:\\" + fileName + "\"");
sb.Append("\r\n");
sb.Append("Content-Type: pplication/octet-stream");
sb.Append("\r\n\r\n");
string head = sb.ToString();
byte[] form_data = Encoding.UTF8.GetBytes(head);
//结尾
byte[] foot_data = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
myReq.ContentLength = buffer.Length + form_data.Length + foot_data.Length;
myReq.KeepAlive = true;
myReq.ProtocolVersion = HttpVersion.Version10;
Stream requestStream = myReq.GetRequestStream();
requestStream.Write(form_data, 0, form_data.Length);
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Write(foot_data, 0, foot_data.Length);
requestStream.Close();
using (HttpWebResponse webResponse = (HttpWebResponse)myReq.GetResponse())
{
Stream responseStream = webResponse.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string str = reader.ReadToEnd();
return str;
}
}