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

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 に答える
0

HttpRequestクラスを操作してみてください。クライアントによってアップロードされたファイルを保持することを示すプロパティFilesがあります。私はこれをテストしませんでした...

于 2012-07-09T09:42:42.457 に答える