ASP.NET Web API 發送接收圖片參考

項目開發中遇到了一個ASP.NET WebAPI 4.0  接收,發送圖片的問題。本身摸索了一個解決辦法,現分享給你們,望你們在之後碰到這樣的需求能夠作個參考。c#

接收(單文件):code

string fullPath = HttpContext.Current.Server.MapPath("~/Images");
//讀取文件流到內存中
var task = Request.Content.ReadAsMultipartAsync();
task.Wait();
var file = task.Result;
//取出原始文件名
var oldfileName = file.Contents[0].Headers.ContentDisposition.FileName.Replace("\"","").Trim();
//保存路徑
var logoFilePath = Path.Combine(HttpContext.Current.Server.MapPath("~/Images/Logo"), oldfileName);
//建立文件
var fileStream = File.Create(logoFilePath);
//寫入流
await file.Contents.ElementAt(0).CopyToAsync(fileStream);
fileStream.Close();
return Ok();


發送(經過地址重定向):orm

 //構建數據訪問對象
 ISchoolRepository schoolRepository =
                RepositoryFactory.GetRepository<ISchoolRepository, School>(null, connstr);
//查找指定實體
var school = schoolRepository.FindBy(schoolID);
 if(school==null)
{
     //指定實體已經被刪除
      return NotFound();
}
else
{
        //實體是否上傳圖片
        if(string.IsNullOrEmpty(school.LogoName))
        {
          //返回默認圖片
          var defaultImageUrl = string.Format("{0}://{1}:{2}/Images/Thumbnails/School.png",
              "https",
               Request.RequestUri.Host,
               Request.RequestUri.Port
              );
           //發送重定向地址
           return Redirect(defaultImageUrl);
        }
        else
        {
           //組合圖片的URL地址
           var trainingImageUrl = string.Format("{0}://{1}:{2}/Images/Thumbnails/{3}.png",
               "https",
               Request.RequestUri.Host,
               Request.RequestUri.Port,
               System.IO.Path.GetFileNameWithoutExtension(school.LogoName)
               );
           //發送重定向地址
           return Redirect(trainingImageUrl);
        }
}
相關文章
相關標籤/搜索