C# webapi 上传下载图片

C# webapi 上传下载图片

客户端上传文件

string url = url + "webUploadFile";
            Uri server = new Uri(url);
            HttpClient httpClient = new HttpClient();

            MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();

            StreamContent streamConent = new StreamContent(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read));

            multipartFormDataContent.Add(streamConent, "jpg", fileName);

            HttpResponseMessage responseMessage = httpClient.PostAsync(server, multipartFormDataContent).Result;
            return responseMessage;

服务端接收文件


[Route("webUploadFile"), System.Web.Http.HttpPost]
public HttpResponseMessage webUploadFile()

{

 (HttpContext.Current.Request.Files.AllKeys.Any())
                {var httpPostedFiles = HttpContext.Current.Request.Files;
                    if (httpPostedFiles != null && httpPostedFiles.Count > 0)
                    {
                        // 获取文件
                        HttpPostedFile httpPostedFile = httpPostedFiles[0];
                        string fileExtension = ".jpg";// Path.GetExtension(httpPostedFile.FileName);// 文件扩展名
                        string fileId = "11";
                        string filePath = uploadPath + fileId + fileExtension;// 上传路径


                        httpPostedFile.SaveAs(filePath);

                        
                        string jsonres = "{"code":"200","message":"文件上传成功", "data":{ "fileUrl":"" + downloadurl+ "webDownloadFile?fileId=" + fileId + ""}}";

                        return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(jsonres, System.Text.Encoding.UTF8, "application/json")};
                    }
                }
}

服务端下载文件

[Route("webDownloadFile"), System.Web.Http.HttpGet]   
        public HttpResponseMessage webDownloadFile()
        {
            if (HttpContext.Current.Request.Params.Count > 0 && HttpContext.Current.Request["fileId"] != null)
            {
                string fileId = HttpContext.Current.Request["fileId"];
                string fileName = fileId + ".jpg";

                string path = uploadPath + fileName;
                if (!File.Exists(path))
                {
                    return new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(Common.ReturnMessage("404", "文件不存在"), System.Text.Encoding.UTF8, "application/json") };
                }

                HttpResponseMessage result = null;

                FileStream fs = new FileStream(path, FileMode.Open);

                result = new HttpResponseMessage(HttpStatusCode.OK);
                result.Content = new StreamContent(fs);
                result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/jpeg");

                return result;
            }

            return new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(Common.ReturnMessage("400", "文件下载失败"), System.Text.Encoding.UTF8, "application/json") };
        }