示例#1
0
        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();
                }
            }
        }
示例#2
0
        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("异步代码执行完毕");
        }