.net 多字段 上传文件

Uri uri = new Uri(url);

                string boundary = "---------------------------7da27130b0164";

 

                //string boundary = "---------" + DateTime.Now.Ticks.ToString("x");

                HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri);

                webrequest.Timeout = 30000;

                //          webrequest.CookieContainer = cookies;

                webrequest.ContentType = "multipart/form-data; boundary=---------------------------7da27130b0164";

                webrequest.Method = "POST";

                webrequest.KeepAlive = true;

 

 

                // Build up the post message header   

                StringBuilder sb = new StringBuilder();

                //sb.Append("-----------------------------7da27130b0164/r/n");

                sb.Append("-----------------------------7da27130b0164/r/n");

                sb.Append("Content-Disposition: form-data; name=/"UploaderID/"/r/n/r/n");

                sb.Append(querystring["UploaderID"]);

                sb.Append("/r/n-----------------------------7da27130b0164/r/n");

 

                sb.Append("Content-Disposition: form-data; name=/"Type/"/r/n/r/n");

                sb.Append(querystring["Type"]);

                sb.Append("/r/n-----------------------------7da27130b0164/r/n");

 

                sb.Append("Content-Disposition: form-data; name=/"GPS/"/r/n/r/n");

                sb.Append(querystring["GPS"]);

                sb.Append("/r/n-----------------------------7da27130b0164/r/n");

 

                sb.Append("Content-Disposition: form-data; name=/"Uploader/"/r/n/r/n");

                sb.Append(querystring["Uploader"]);

                sb.Append("/r/n-----------------------------7da27130b0164/r/n");

 

                sb.Append("Content-Disposition: form-data; name=/"Memo/"/r/n/r/n");

                sb.Append(querystring["Memo"]);

                sb.Append("/r/n-----------------------------7da27130b0164/r/n");

 

 

                sb.Append("Content-Disposition: form-data; name=/"");

                sb.Append("FileUpload");

                sb.Append("/"; filename=/"");

                sb.Append(Path.GetFileName(uploadfile));

                sb.Append("/"");

                sb.Append("/r/n");

                sb.Append("Content-Type:");

                sb.Append(contenttype);

                sb.Append("/r/n");

                sb.Append("/r/n");

 

                StringBuilder endsb=new StringBuilder();

                endsb.Append("/r/n-----------------------------7da27130b0164/r/n");

                endsb.Append("Content-Disposition: form-data; name=/"Submit/"/r/n/r/n");

                endsb.Append("upload");

                endsb.Append("/r/n-----------------------------7da27130b0164--/r/n");

                string postHeader = sb.ToString();

                byte[] postHeaderBytes = Encoding.UTF8.GetBytes(postHeader);

 

                // Build the trailing boundary string as a byte array   

                // ensuring the boundary appears on a line by itself   

 

                byte[] boundaryBytes = Encoding.ASCII.GetBytes(endsb.ToString());

 

                FileStream fileStream = new FileStream(uploadfile, FileMode.Open, FileAccess.Read);

                long length = postHeaderBytes.Length + fileStream.Length + boundaryBytes.Length;

                webrequest.ContentLength = length;

 

                Stream requestStream = webrequest.GetRequestStream();

 

                // Write out our post header   

                requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);

 

                // Write out the file contents   

                byte[] buffer = new Byte[checked((uint)Math.Min(4096, (int)fileStream.Length))];

                int bytesRead = 0;

                while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)

                    requestStream.Write(buffer, 0, bytesRead);

 

                fileStream.Close();

                // Write out the trailing boundary   

                requestStream.Write(boundaryBytes, 0, boundaryBytes.Length);

                requestStream.Close();

                HttpWebResponse responce = (HttpWebResponse)webrequest.GetResponse();

                Stream s = responce.GetResponseStream();

                StreamReader sr = new StreamReader(s);

                string r = sr.ReadToEnd();

                sr.Close();

                if (r.IndexOf("SUCCESS")>=0)

                {

                    //上传成功

                    uploadcallback("ok");

                }

                else

                {

                    //上传失败

                    uploadcallback("error");

                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值