내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-09 05:06

제목

[ASP.NET MVC] ASP.NET MVC모델 Controller에서 이미지를 반환하기


컨트롤러에서  View()를 생성하여 View페이지만을 반환하는 것이 아니라, 아무런 내용도 반환하지 않거나, JSON객체를 반환하거나 파일을 반환하는 것도 가능하다.

일반적인 문자열을 반환하는 경우 ContentResult 객체를 반환하며, 반환값이 없을 경우 EmptyResult 객체를, JSON객체를 반환할때는 JsonResult 개체를, 파일을 반환할 경우 FileContentResult를 이용한다.

자바스크립트를 직접 반환할 경우에는 JavaScriptResult를 이용하는 것도 가능하다.

예제는 사이트 외부의 이미지 파일을 서버에서 읽어 들여 이미지를 직접적으로 반환하는 예제이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// GET: /Game/GameImage
[AcceptVerbs(HttpVerbs.Get)]
public FileContentResult GameImage()
{
    FileContentResult result = null;
    string imgUrl = string.Empty;
 
    imgUrl = "이미지 주소";
 
    if (!string.IsNullOrEmpty(imgUrl))
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl);
        MemoryStream ms = new MemoryStream();
        using (Stream stream = request.GetResponse().GetResponseStream())
        {
            byte[] buffer = new byte[0x1000];
            int bytes;
            while ((bytes = stream.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, bytes);
            }
        }
 
        byte[] img = ms.ToArray();
        result = new FileContentResult(img, "image/jpeg");
    }
 
    return result;
}
 
cs


출처1

출처2