2014-12-03 96 views
-1

我需要將Excel文件傳遞到C#中實現的Web服務中。到目前爲止我創建的Web服務如下。將Excel文件傳遞到WEB API Web服務的最佳方式是什麼?

public void loadData([FromBody]string dataFile) 
     { 

     } 

我也認爲這是accepatble通過Excel文件是使用Base64編碼字符串; 這是一個好方法,還是有更好的方法來做到這一點?

+1

你可以通過符合RFC 1149-鏈接發送。如何發送它並不重要。重要的是web服務期望/需要什麼。 – 2014-12-03 19:12:47

+1

所以接受文件爲字符串好嗎? – DafaDil 2014-12-03 19:14:03

回答

0

基本上,您將該文件作爲multipart/form-data HTTP請求的一部分傳遞。

How To Accept a File POST

Sending HTML Form Data in ASP.NET Web API: File Upload and Multipart MIME

編輯: 要接收任何類型的二進制文件,使用下面的代碼。但是,這是相當不安全的。真的,請檢查請求標頭的內容類型和內容長度。

public void loadData() { 
    /* get raw data */ 
    string dataFile = Request.Content.ReadAsStringAsync().Result 
} 

Accepting Raw Request Body Content with ASP.NET Web API

+0

Web服務仍然是一樣的嗎?我指的是public void loadData([FromBody] string dataFile) – DafaDil 2014-12-03 21:03:38

+0

在我看來,將一個文件作爲字符串傳遞並不是一個好主意。你不知道文件的類型是什麼,或者實際的二進制長度是多少。此外,mutlipart /表單數據內容類型是HTML表單提交文件的唯一方式。而不是mutlipart/form-data或base64字符串,您可以發送文件二進制文件。 http://blog.marcinbudny.com/2014/02/sending-binary-data-along-with-rest-api.html#.VH986zE73Fk – Alex 2014-12-03 21:12:35

+0

所以必須是方法的簽名公共無效loadData(?)如果使用mutlipart /表單數據內容類型 – DafaDil 2014-12-03 21:16:46

相關問題