저번 게시글에서 작성한 <서버에 생성&저장된 zip파일>에 대해 클라에서 다운로드 받는 로직을 구현했다.
매개변수 값을 토대로 서버에서 파일을 찾아 다운로드 받으면 되는 방식. 동기식은 await, async를 제거하면 끝.
많이 리서치 한다고 해도 아직 실무에 직접 적용해 성능 비교가 어려운 것 같다.
1. 코드
[HttpGet]
[Route("api/zipDownload")]
public async Task SetFileZipDownLoad(string fileName)
{
//서버 zip파일 찾기
string zipFileURL = HttpContext.Current.Server.MapPath("/zip/" + fileName + ".zip");
WebClient req = new WebClient();
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;
response.ContentType = "application/zip";
response.AddHeader("Content-Disposition",
"attachment;filename=\"" + "download시 원하는 zip파일 이름"+".zip"+ "\"");
byte[] data = await req.DownloadDataTaskAsync(zipFileURL);
response.BinaryWrite(data);
response.End();
}
매개변수로 URL을 받게되면 zipFileURL을 생성할 필요없이 바로 사용하면 된다.
2. 구현
프론트쪽 download 버튼을 생성해 api를 호출해줬는데 정상적으로 작동하게 된다.ㅇㅅㅇ
반응형
'Web > .NET Core C#' 카테고리의 다른 글
[.NET] 비동기 다중파일 ZIP File 생성 및 저장 API (서버 올리기) (0) | 2021.01.05 |
---|