본문 바로가기

ASP.NET&C#/ASP.NET MVC

[ASP.NET CORE/MVC] #9 파일 다운로드 기능 구현

[ASP.NET CORE/MVC] #9 파일 다운로드 기능 구현

안녕하세요 미나라이입니다.

 

이번에는 ASP.NET CORE MVC Web의 파일 다운로드 기능을 구현하는 방법에 대해서 포스팅 하려고 합니다.

 

프로젝트 환경

OS : Windows 10

IDE : Visual Studio Code 1.62.2

.Net SDK : 5.0.403

.Net Runtime : .NetCore.App 5.0.10 / 5.0.12

 

파일 준비

 

파일 링크 작성

Index.html

<h4>Download File</h4>
<br />
<a onclick="location.href='/Home/FileDownload'" href="#">File Download</a>

 

파일 다운로드 처리

HomeController.cs

public FileResult FileDownload()
{   
    string filepath = "F:/dotnet/TestProject";        // 파일 경로
    string filename = "FileTest.txt";                 // 파일명
    string path = filepath + "/" + filename;          // 파일 경로 / 파일명
    // 파일을 바이트 형식으로 읽음
    byte[] bytes = System.IO.File.ReadAllBytes(path); 
    // 파일 다운로드 처리
    return File(bytes, "application/octet-stream" , filename);
}

application/octet-stream가 무엇인지에 대해서는 아래 링크를 참고 해 주세요

 

MIME 타입 - HTTP | MDN

MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘입니다: 웹에서 파일의 확장자는 별  의미가 없습니다. 그러므로, 각 문서와 함께 올바른 MIME 타입을 전송하도

developer.mozilla.org

결과 확인

 

샘플 프로젝트를 첨부합니다.

TestProject_FileDownload.zip
1.20MB

 

이상으로 간단하게 MVC 환경에서 파일 다운로드 처리 기능을 구현 해 봤습니다.

728x90
반응형