RestSharp 向服務端上傳文件用法


客戶端代碼

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM