Пример #1
0
        private void buttonUpload_Click(object sender, EventArgs e)
        {
            var uploadUrl = textBaseAddress.Text.Trim() + "/upload";

            if (Guid.TryParse(textGroupId.Text.ToString(), out Guid groupId))
            {
                var param = new UploadParam()
                {
                    MD5     = Guid.NewGuid().ToString("N"),
                    GroupId = groupId,
                };
                var location = textLocation.Text.ToString();
                Task.Run(async() => await UploadFileAsync(uploadUrl, location, param));
            }
            else
            {
                UpdateUploadMsg("群组Id不正确");
            }
        }
Пример #2
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="url"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public async Task <string> UploadFileAsync(string url, string path, UploadParam fileParam)
        {
            Debug.WriteLine("---------------------------------------");
            Debug.WriteLine("URL = " + url);
            //Debug.WriteLine("Content = " + JsonConvert.SerializeObject(fileParam));
            Debug.WriteLine("---------------------------------------");
            var uploadMessage = "";

            try
            {
                using (var client = new HttpClient())
                {
                    client.SetBearerToken(accessToken);
                    using (var content = new MultipartFormDataContent("Upload----" + DateTime.Now.Ticks.ToString("x")))
                    {
                        using (var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read))
                        {
                            content.Add(new StringContent(fileParam.GroupId.ToString()), "GroupId");
                            content.Add(new StringContent(fileParam.MD5.ToString()), "MD5");
                            var streamContent = new StreamContent(stream);
                            streamContent.Headers.ContentType        = new MediaTypeHeaderValue("application/octet-stream");
                            streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                            {
                                Name     = "file",                 //上传文件的name标识,用于action参数构造
                                FileName = Path.GetFileName(path), //上传的文件的名称
                            };
                            content.Add(streamContent);
                            try
                            {
                                client.DefaultRequestHeaders.Accept.Clear();
                                //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                                client.DefaultRequestHeaders
                                .Accept
                                .Add(new MediaTypeWithQualityHeaderValue("application/json"));
                                client.DefaultRequestHeaders.Connection.Add("Keep-Alive");
                                using (var httpResponseMessage = await client.PostAsync(url, content))
                                {
                                    var responseContent = "";
                                    if (httpResponseMessage.IsSuccessStatusCode)
                                    {
                                        responseContent = await httpResponseMessage.Content.ReadAsStringAsync();

                                        uploadMessage = " UploadFileAsync " + httpResponseMessage.StatusCode + "\n" + responseContent;
                                    }
                                    else
                                    {
                                        uploadMessage = " UploadFileAsync Failed " + httpResponseMessage.StatusCode;
                                    }
                                    Debug.WriteLine(uploadMessage);
                                    UpdateUploadMsg(uploadMessage);
                                    return(responseContent);
                                }
                            }
                            catch (Exception e)
                            {
                                uploadMessage = "UploadFileAsync Exception === " + e.Message;
                                Debug.WriteLine(uploadMessage);
                                UpdateUploadMsg(uploadMessage);
                                return("");
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                uploadMessage = "UploadFileAsync Exception === " + e.Message;
                Debug.WriteLine(uploadMessage);
                UpdateUploadMsg(uploadMessage);
                return("");
            }
        }