5. 이번에도 UI가 필요 없는 페이지 중에서 이미지 파일만 내려받게 해주는 ImageDown.aspx 페이지를 구성해보자. ImageDown.aspx 페이지는 그대로 두고, 코드 숨김 페이지인 ImageDown.aspx.cs 파일을 열고 다음과 같이 타이핑한다. 소스를 분석해보면 알겠지만, 이 또한 간단하게 이미지 파일만 내려받는다.

    ▼  ~/DotNetNote/ImageDown.aspx.cs

    using System;
    using System.IO;
    
    namespace MemoEngine.DotNetNote
    {
      /// <summary>
      /// ImageDown : 완성형(DotNetNote) 게시판의 이미지 전용 다운 페이지
      /// 이미지 경로를 보여주지 않고 다운로드한다.
      /// </summary>
      public partial class ImageDown : System.Web.UI.Page
      {
          protected void Page_Load(object sender, System.EventArgs e)
          {
              // 넘어온 파일명 체크
              if (String.IsNullOrEmpty(Request.QueryString[“FileName”]))
              {
                  Response.End();
              }
              
              string fileName = Request.Params[“FileName”].ToString();
              string ext = Path.GetExtension(fileName); // 확장자만 추출
              string contentType = ””;
              if (ext == ”.gif” || ext == ”.jpg”
              || ext == ”.jpeg” || ext == ”.png”)
              {
                  switch (ext)
                  {
                      case ”.gif”:
                          contentType = “image/gif”; break;
                      case ”.jpg”:
                          contentType = “image/jpeg”; break;
                      case ”.jpeg”:
                          contentType = “image/jpeg”; break;
                      case ”.png”:
                          contentType = “image/png”; break;
                  }
              }
              else
              {
                  Response.Write(
                      “<script language=‘javascript’>“
                      + “alert(‘이미지 파일이 아닙니다.’)</script>“);
                  Response.End();
              }
              string file = Server.MapPath(”./MyFiles/”) + fileName;
              
              // 강제 다운로드 로직 적용
              Response.Clear();
              Response.ContentType = contentType;
              Response.WriteFile(file);
              Response.End();
          }
      }
    }
    

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.