Posts

Showing posts from June, 2017

[ASP.NET] 如何把檔案上傳到WEB API?

Image
研究背景:

最近協助朋友研究在公司網站建立新功能,讓客戶可以直接上傳檔案到公司的內部伺服器。

系統架構如下圖,檔案最後會放在公司內部的Web API Servr。而Web API接收上傳檔案的API是使用HTML的FormData格式


問題: 網路上大部分教學是利用jquery ajax把檔案直接上傳到Web API上,可是公司Web API是內部使用的伺服器,所以只能透過Web Server存取。解決方案: 以下是其中一種試過可行的做法。
Web Server部分Web API接收上傳檔案的API是使用HTML的FormData格式,所以當Web Server接收到Browser的上傳後需要把檔案轉成multipart/form-data的http Request,然後發送到後端的Web API去。產生的方法至少有兩種自己寫HTTP Request Message
post Upload上传文件中multipart/form-data 做的那些事
使用套件 RESTSharp
 Git
我們所使用的是REST Sharp。先讀取來自Browser的Request,然後把檔案變成multipart/form-data,再產生Http Request上傳到Web API。

namespace/*project name*/.Controllers { publicclass FilesController : Controller { // GET: Filespublicstring Upload() { List<string> filesList = new List<string>(); try { foreach(string file in Request.Files) { var fileContent = Request.Files[file]; if (fileContent != null & fileContent.ContentLength > 0) …