using System.Web.Mvc; namespace Models { public class DownloadResult : ActionResult { public string FileName { get; set; } public string Path { get; set; } public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.Buffer = true; context.HttpContext.Response.Clear(); context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName); context.HttpContext.Response.ContentType = "application/unknown"; // 모든 파일 강제 다운로드 context.HttpContext.Response.WriteFile(context.HttpContext.Server.MapPath(Path)); } } }위와 같이 확장해서 하나 만들어주고 아래와 같이 걸어주고 호출하면 끝...
public DownloadResult FileDownload() { string fileName = Request["filenames"].ToString(); string filePath = Path.Combine(Server.MapPath("~/Downloads/"), fileName); return new DownloadResult { FileName = fileName, Path = "~/Downloads/" + fileName }; }페이지에서 javascript로 location.href = 'url'; 해주어도 지가 알아서 열기,저장,취소 다이얼로그 창이 잘 떠준다 :)
익스,크롬,파폭 등 아직까진 문제가 없다 ㄷㄷㄷ