개발관련/other

ASP.NET MVC 컨트롤러가 이미지를 반환 하는 방법

Rateye 2021. 6. 9. 10:35
728x90
반응형
질문 : ASP.NET MVC 컨트롤러가 이미지를 반환 할 수 있습니까?

단순히 이미지 자산을 반환하는 컨트롤러를 만들 수 있습니까?

다음과 같은 URL이 요청 될 때마다 컨트롤러를 통해이 논리를 라우팅하고 싶습니다.

www.mywebsite.com/resource/image/topbanner 

topbanner.png 를 조회하고 해당 이미지를 클라이언트로 직접 보냅니다.

보기를 만들어야하는 경우의 예를 보았습니다.보기를 사용하고 싶지 않습니다. 컨트롤러만으로 모든 것을하고 싶습니다.

이것이 가능한가?

답변

기본 컨트롤러 File 메서드를 사용합니다.

public ActionResult Image(string id)
{
    var dir = Server.MapPath("/Images");
    var path = Path.Combine(dir, id + ".jpg"); //validate the path for security or use other means to generate the path.
    return base.File(path, "image/jpeg");
}

참고로 이것은 상당히 효율적인 것 같습니다. http://localhost/MyController/Image/MyImage )와 직접 URL ( http://localhost/Images/MyImage.jpg )을 통해 이미지를 요청한 테스트를 수행했으며 결과는 다음과 같습니다.

  • MVC : 사진 당 7.6 밀리 초
  • 직접 : 사진 당 6.7 밀리 초

참고 : 이것은 요청의 평균 시간입니다. 평균은 로컬 시스템에서 수천 건의 요청을 수행하여 계산되었으므로 총계에는 네트워크 대기 시간이나 대역폭 문제가 포함되지 않아야합니다.

출처 : https://stackoverflow.com/questions/186062/can-an-asp-net-mvc-controller-return-an-image
728x90
반응형