asp.net中使用HttpWebRequest发送上传文件

导读:本篇文章讲解 asp.net中使用HttpWebRequest发送上传文件,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一个网站中需要上传一个文件到另一个网站,可以使用HttpWebRequest或者WebClient。
但是WebClient需要首先上传文件到服务器,才能执行发送,不太符合我的需求,这里不再介绍。

通过HttpWebRequest发送的原理:
构建一个HttpWebRequest,通过FileUpload获取要上传的文件,通过字节流发送这个文件,另一个网站接收字节流,保存到服务器。

发送程序:

//获取要上传的文件信息
        byte[] data = fileupload1.FileBytes;
        string fileName = fileupload1.FileName;
        string fileType = fileupload1.PostedFile.ContentType;
        string fileSize = data.Length.ToString();
  
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8102/Default.aspx");
        myRequest.Method = "POST";
        myRequest.ContentType = fileType;
        myRequest.ContentLength = data.Length;
        myRequest.Headers.Add("FileType", Server.UrlEncode(fileType));
        myRequest.Headers.Add("FileSize", fileSize);
        myRequest.Headers.Add("FileName", Server.UrlEncode(fileName));
  
        using (Stream newStream = myRequest.GetRequestStream())
        {
            // Send the data.
            newStream.Write(data, 0, data.Length);
            newStream.Close();
        }
  
        // Get response
        HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
        StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
        string content = reader.ReadToEnd();

接收程序:

string fileName = Server.UrlDecode(Request.Headers["FileName"].ToString());
            string fileType = Server.UrlDecode(Request.Headers["FileType"].ToString());
            int fileSize = int.Parse(Request.Headers["FileSize"].ToString());
  
            byte[] bytes = Request.BinaryRead(fileSize);
            File.WriteAllBytes(Server.MapPath("~/uploadfiles/" + fileName), bytes);
  
            Response.HeaderEncoding = System.Text.Encoding.UTF8;
            Response.Charset = "utf-8";
            Response.Write("FileType:" + fileType + ";FileName:" + fileName + ";FileSize:" + fileSize);

来源:http://blog.bossma.cn/dotnet/asp-net-httpwebrequest-upload-send-file/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/6421.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!