2010-11-11 58 views
1

可以使用FileUpload Control和WebMethod上傳文件嗎?.NET WebMethod FileUpload

我想避免UpdatePanel和ScriptManagers。

我該怎麼辦? Web方法將是什麼樣的參數?有沒有例子?

謝謝!

+0

你確定這是不夠好:http://asp.net-tutorials.com/controls/file-upload-control/ – 2010-11-11 16:23:15

回答

2

我找不到使用WebMethod詢問的解決方案,所以我想出了替代解決方案,它使用HTTPHandler或更好地稱爲ASPX control/page。

爲了達到你想要的效果,我使用Valums文件上傳,有很多替代品,但這是我發現非常適合我的情況。你可以找到更多的信息,文檔和下載JavaScript代碼在這裏:

http://valums.com/ajax-upload/

代碼也給例如如何處理服務器端但是請求時,它不包括在代碼示例.net所以我找到了這個項目。

http://www.codeproject.com/KB/aspnet/AspNetHandlerAjaxUpload.aspx

其中用Valums文件上傳和處理使用的.Net C#服務器端的文件上傳請求。

總之,這裏是你如何使用Valums文件上傳客戶端

  1. 確保參考CSS的Javascript文件從Valum文件下載上傳網站。
  2. 使用此代碼創建文件上傳控制

    <div id="divFileUpload"> 
        <noscript> 
         <p> 
          Please enable JavaScript to use file uploader.</p> 
        </noscript> 
    </div> 
    
  3. 使用此JavaScript代碼來設置文件上傳控件

    $(function() { 
        var uploader = new qq.FileUploader({ 
         element: document.getElementById('divFileUpload'), 
         action: 'FileUpload.ashx', 
         onComplete: function (id, fileName, responseJSON) { 
          if (responseJSON.Success) { 
           alert("Success"); 
          } 
         } 
        }); 
    }); 
    

服務器端

  1. 創建ASHX文件來處理來自客戶端的請求。
  2. 示例代碼

    public class FileUpload : IHttpHandler 
    { 
        public void ProcessRequest(HttpContext context) 
        { 
         //Save the file here 
    
         //Return Json value to client 
         context.Response.Write("{ \"Success\": true }"); 
        } 
    } 
    
  3. 非常重要,返回JSON類型的客戶端。

有關如何處理客戶端請求的更多詳細信息,請參閱上面的URL。

所有學分轉到安德魯ValumsValums文件上傳賽義德BASHAR使用Valums文件上傳的.NET服務器的代碼。

+0

可能不是他正在尋找,但它正是我所需要的。謝謝! – mikeschuld 2012-03-15 00:20:57

+0

這可能會幫助我想。但仍然沒有傳遞到webmethod。我認爲使用xhr我可以將文件轉換爲utf-8併發送到webmethod。有可能這樣做嗎? – 2013-04-28 13:31:32