WebApi Code
namespace ImageDemo.Controllers
{
public class ImageController : ApiController
{
[HttpGet]
[Route("api/image")]
public IHttpActionResult Get(string file)
{
#region 取得server的相對路徑
// 指定 IIS 所在 Server 的資料夾位置
string sourceDir = $"D:/WebAPIDemoPhoto";
if (Directory.Exists(sourceDir) == false)
{
return BadRequest("資料夾不存在");
}
// 限定 jpg 檔案
var fileFullName = Directory.GetFiles(sourceDir, "*.jpg")
.FirstOrDefault(f => Path.GetFileNameWithoutExtension(f) == file);
if (fileFullName == null)
{
return BadRequest("檔案不存在");
}
#endregion
// jpg 圖檔為 image/jpeg
var mimeType = MimeMapping.GetMimeMapping(fileFullName);
var response = new HttpResponseMessage(HttpStatusCode.OK);
var fileStream = new FileStream(fileFullName, FileMode.Open, FileAccess.Read);
response.Content = new StreamContent(fileStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = HttpUtility.UrlPathEncode(file)
};
// 告知瀏覽器下載長度
response.Content.Headers.ContentLength = fileStream.Length;
return ResponseMessage(response);
}
}
}
部屬至本機 IIS 上後,利用 Postman 來打看看Header 資訊
沒想到 Postman 內可以顯示該圖片
沒有留言:
張貼留言