如何在ASP.Net中获取请求内容

时间:2012-07-09 09:33:29

标签: c# asp.net http

我有以下代码将文件发布到ASP.net页面:

using (var Client = new WebClient())
    Client.UploadFile("http://localhost:1625/Upload.aspx", @"TestFile.csv");

在服务器页面上,我阅读了请求的内容:

        var Contents = new byte[Request.InputStream.Length];
        Request.InputStream.Read(Contents, 0, (int)Request.InputStream.Length);

这是我在内容中得到的:

-----------------------8cf2bdc76fe2b40
Content-Disposition: form-data; name="file"; filename="TestFile.csv"
Content-Type: application/octet-stream

1;Test 1
2;Test 2
3;Test 3
4;Test 4
5;Test 5
-----------------------8cf2bdc76fe2b40--

实际文件内容仅为1;Test 1 ... 5;Test 5。 我的问题是如何只获取文件内容而不是标题的整个请求?

4 个答案:

答案 0 :(得分:1)

试试这个,首先获取发布的文件:

 {
    HttpFileCollection files = Request.Files;
    HttpPostedFile file = files[0];
    int filelength = file.ContentLength;
    byte[] input = new byte[filelength ];
    file.InputStream.Read(input, 0, filelength );

   }

答案 1 :(得分:0)

尝试使用HttpRequest课程。它有一个属性Files,表示保存客户端上传的文件。 我没有测试过这个...

答案 2 :(得分:0)

您可以使用NameValueCollection在ASP.Net中获取请求内容:

NameValueCollection nvc = Request.Form;
string firstname, lastname;
if (!string.IsNullOrEmpty(nvc["txtFirstName"]))
{
  firstname = nvc["txtFirstName"];
}

if (!string.IsNullOrEmpty(nvc["txtLastName"]))
{
  lastname = nvc["txtLastName"];
}

此处txtFirstNametxtLastName都是上一页控件的名称。

答案 3 :(得分:0)

尝试

var Content = Client.UploadFile("http://localhost:1625/Upload.aspx", @"TestFile.csv");
string fileContents = Encoding.ASCII.GetString(Contents));