4

我有以下代码将文件发布到 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

4 回答 4

1

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

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

   }
于 2012-07-09T10:13:23.853 回答
0

尝试使用HttpRequest类。它有一个属性Files,它声明保存了客户端上传的文件。我没有测试这个...

于 2012-07-09T09:42:42.457 回答
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两者都是上一页控件的名称。

于 2012-07-09T09:51:25.687 回答
0

尝试

var Content = Client.UploadFile("http://localhost:1625/Upload.aspx", @"TestFile.csv");
string fileContents = Encoding.ASCII.GetString(Contents));
于 2012-07-09T10:29:03.457 回答