2011-10-18 38 views
0

我想知道是否有可能將文件發送到c#中的通用處理程序,並生成某種響應。例如:將.txt文件發佈到處理程序。處理程序檢查是否提交了一個文本文件,然後將其轉換爲json作爲響應。希望你明白這個主意。謝謝jquery ajax:將文件上傳到c#處理程序

回答

1

你可以寫你的處理程序是這樣的:

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; 
     } 
    } 
} 

Request.Files東西讀Scott Hanselman's this post

1

看起來你正在談論創建一個web service。本教程可能是一個很好的出發點:http://www.dotnetperls.com/ashx

其基本思想是您將在.ashx文件中創建您的處理程序函數,並通過HTTP POST請求傳遞您的文件信息(textfile),然後編寫任何JSON你想要的響應對象。

+0

「通過HTTP POST請求傳遞的文件信息(文本文件)」。所以我上傳文件到服務器 - >通過HttpWebRequest發送數據從文件處理程序 - >處理程序生成json? – Johan

+0

是的,我想我們在同一頁面上。當您將文件上傳到服務器(您的目標是yourservice.ashx)時,您可以將該文件作爲System.Web.HttpPostedFile對象訪問。它存儲在HttpWebRequest對象的'Files'集合屬性中。當您準備好編寫響應時,將您想要的JSON放入Response.Write()函數中。 – Mirthquakes