2011-10-18 11 views
0

C#でジェネリックハンドラにファイルを送信して何らかの応答を生成できるかどうかを知りたい。例:.txtファイルをハンドラに投稿します。ハンドラは、テキストファイルが送信されているかどうかをチェックし、それを応答としてjsonに変換します。あなたはアイデアを得ることを願っています。ありがとうjquery ajax:ファイルをC#ハンドラにアップロードする

答えて

1

あなたはこのようなあなたのハンドラを書くことができます:Request.Filesもののため

public class FileUploadHandler : IHttpHandler 
{ 
    public void ProcessRequest (HttpContext context) 
    { 
     HttpResponse response = context.Response; 

     foreach (string file in context.Request.Files) 
     { 
      HttpPostedFile hpf = context.Request.Files[file] as HttpPostedFile; 
      if (hpf.ContentLength == 0) 
       continue; 
      //DO SOMETHING WITH FILE. 
     } 

     //RETURN ANY RESPONSE USING response OBJECT 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

は、 "HTTP POSTリクエスト経由でファイルの情報(テキストファイル)を渡す" Scott Hanselman's this post

1

あなたはweb serviceの作成について話しているようです。 http://www.dotnetperls.com/ashx

基本的な考え方は、.ashxファイル内にハンドラ関数を作成し、HTTP POSTリクエストによってファイル情報(テキストファイル)を渡し、次に何かを書くことです。 JSONをレスポンスオブジェクトに追加します。

+0

をお読みください。だから私はサーバーにファイルをアップロードする - > HttpWebRequestを介してファイルからハンドラにデータを送る - >ハンドラがjsonを生成する? – Johan

+0

ええ、私たちは同じページにいると思います。ファイルをサーバーにアップロードしたら(ターゲットはyourservice.ashx)、System.Web.HttpPostedFileオブジェクトとしてファイルにアクセスできます。これはHttpWebRequestオブジェクトの 'Files'コレクション属性に格納されています。レスポンスを書く準備ができたら、目的のJSONをResponse.Write()関数に入れます。 – Mirthquakes

関連する問題