客戶端代碼
var request = new RestRequest(Method.POST); //傳遞參數 request.AddParameter("projectId", "F25F57FC-DD28-4349-AFAD-5797D6B3AF06"); //txtPictures.Text為文件路徑 request.AddFile("file", txtPictures.Text); //calling server with restClient //http://localhost:42352/api/WorkingCondition/Upload 服務端上傳方法的接口地址 var restClient = new RestClient { BaseUrl = new Uri("http://localhost:42352/api/WorkingCondition/Upload") }; restClient.ExecuteAsync(request, async (response) => { if (response.StatusCode == HttpStatusCode.OK) { //返回的路徑和文件名集合,格式為["路徑","文件名"] string strResult = response.Content; } else { //失敗 } });
服務端代碼
[HttpPost] public HttpResponseMessage Upload() { HttpResponseMessage response = null; var request = HttpContext.Current.Request; //獲取客戶端傳過來的參數值 string projectId = request.Form["projectId"]; string filePath = "fileupload" + "/" + projectId + "/10"; if (request.Files.Count > 0) { var fileNameList = new List<string>(); //request.Files客戶端傳過來的文件 foreach (string file in request.Files) { var f = request.Files[file]; //路徑為 fileupload+項目ID+文件類型(10為工況管理)+唯一文件名 string fileName = GetUniquelyName() + Path.GetExtension(f.FileName).ToLower(); var fileSavePath = HttpContext.Current.Server.MapPath("~/fileupload") + "/"+projectId + "/10"+"/"+fileName; f.SaveAs(fileSavePath); fileNameList.Add(filePath);//文件路徑 fileNameList.Add(fileName);//改變后的文件名 } response = Request.CreateResponse(HttpStatusCode.OK, fileNameList); } else { response = Request.CreateResponse(HttpStatusCode.BadRequest); } return response; }
