public static void UploadTmplImg(string baseAddress, string postUrl, UploadTmplImgInput inputs) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("multipart/form-data")); using (var content = new MultipartFormDataContent()) { // Make sure to change API address client.BaseAddress = new Uri(baseAddress); var count = 1; foreach (var input in inputs.TmplImages) { var imageName = input.TmplPath; // Add file content var filePath = imageName; var fileContent = new ByteArrayContent(File.ReadAllBytes(@filePath)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { // 注意,这里修改一下,只获取文件名; FileName = System.IO.Path.GetFileName(imageName), // 文件名 FileNameStar = input.ExamCourseId, // 考试科目Id Name = input.PageNo.ToString() // 页码 }; content.Add(fileContent); Console.WriteLine((count++) + "/" + inputs.TmplImages.Count); } var d = new NameValueCollection { { "inputs", JsonConvert.SerializeObject(inputs) } }; var fromData = GetFormDataByteArrayContent(d); foreach (var item in fromData) { content.Add(item); } // Make a call to Web API var result = client.PostAsync(postUrl, content).Result; var str = result.Content.ReadAsStringAsync().Result; Console.WriteLine(result.StatusCode); Console.WriteLine(str); Console.ReadLine(); } } }
private static async void AsyncMethod() { Console.WriteLine("开始异步代码"); #region input var tmplImg1 = new TmplImage { ExamCourseId = "3208075F3F8A4BD19032B41331A1C133", PageNo = 1, TmplPath = @"e:\10001003\1.jpg" }; var tmplImg2 = new TmplImage { ExamCourseId = "3208075F3F8A4BD19032B41331A1C133", PageNo = 2, TmplPath = @"e:\10001003\2.jpg" }; var lstTmplImgs = new List <TmplImage> { tmplImg1, tmplImg2 }; var input = new UploadTmplImgInput { TmplImages = lstTmplImgs }; #endregion var serverList = await HttpHelper.GetAllUseableServers(); // 获取要保存的图片服务器索引号 var serverIndex = HttpHelper.GetServerIndex(serverList.Count); Console.WriteLine("serverIndex:" + serverIndex); // 获取指定图片服务器的信息 var serverUrl = serverList[serverIndex].SvrUrl; var serverId = serverList[serverIndex].SvrId; Console.WriteLine("serverUrl:" + serverUrl); Console.WriteLine("serverId:" + serverId); var baseAddress = $"http://{serverUrl}"; const string postUrl = "/api/Dfs/UploadTmplImg"; HttpHelper.UploadTmplImg(baseAddress, postUrl, input); Console.WriteLine("异步代码执行完毕"); }