CAFE

ASP.NET MVC

asp.net mvc 의 zip 일괄다운로드 만들기

작성자심재운|작성시간16.08.26|조회수958 목록 댓글 4

asp.net mvc 에서 파일을 압축하여 다운로드 받는 방법을 알아보죠.


우선 참조를 통해 프레임워크에서 system.io.compression, system.io.compression, filesystem 을 설정합니다.


압축을 위한 라이브러리 입니다 자세한 설명은 아래 msdn 참고 해 주시고요.~

 

https://msdn.microsoft.com/ko-kr/library/system.io.compression(v=vs.110).aspx





화면을 개발하기 위해서 controller 를 만들어 봅니다. 이름은 FileDownloadConroller 입니다.




 

model 도 하나 만들죠. 이름은 FileDownloads 입니다.




using 문으로 System.IO 을 입력합니다.



 

이제 다시 컨트롤러로 와서,, 뷰를 만들어봅니다.




FileHome 함수에 우클릭하여 뷰추가를 합니다. 그리고 아래와 같이 확인 후  add 합니다.



뷰화면에 다운로드 경로를 렌더링 하기 위해 ActionLink 함수를 사용했습니다.




이제 다시 컨트롤러로 돌아와서, 아래와 같이 zip 다운로드 컨트롤러인 Download 함수를 구현합니다.


 

public ActionResult Download()
 {
    FileDownloads obj = new FileDownloads();
    //int CurrentFileID = Convert.ToInt32(FileID);
    var filesCol = obj.GetFile().ToList();
    using(var memoryStream = new MemoryStream())
    {
        using(var ziparchive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
        {
            for (int i = 0; i < filesCol.Count; i++)
            {
                ziparchive.CreateEntryFromFile(filesCol[i].FilePath, filesCol[i].FileName);                 }
        }
        return File(memoryStream.ToArray(), "application/zip", "Attachments.zip");
    }
}


ZipArchive 함수에서 zip 파일을 만들기 위해 ZipArchiveMode.Create 사용했는데, Update 를 사용하면 읽기 및 쓰기 까지 포함합니다.





펌 : http://www.codeproject.com/Articles/1119036/Download-Multiple-Files-in-Compressed-Format-in-AS?msg=5289102



다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자퇴근5분전 | 작성시간 16.08.26 감사~~ 잘봤습니다.
  • 답댓글 작성자심재운 작성자 본인 여부 작성자 | 작성시간 16.08.26 ^^
  • 작성자김형태 | 작성시간 16.09.01 감사함니다
  • 답댓글 작성자심재운 작성자 본인 여부 작성자 | 작성시간 16.09.07 ;)
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼