Как скачать файлы с сервера
Привет Друзья,
У меня есть большая проблема, и я пытаюсь в течение дня решить ее.
Я хочу вниз загрузить файлы с сервера. Я использовал asp.net решение mvc 4.
Мой код просмотров выглядит следующим образом.
$.ajax({ url: '@Url.Action("DownloadFile", "Inbox")', type: 'POST', cache: false, data: { filePaths: filePaths }, success: function (result) { stopPreLoader(); }, error: function (result) { stopPreLoader(); } });
Здесь filePaths - это список имен файлов. Далее мой контроллер выглядит следующим образом,
[HttpPost] public FileResult DownloadFile(string filePaths) { var pathList = filePaths.Split(',').Where(p => p != "").ToList(); var path = @"" + pathList[0]; if (pathList.Count == 1) { byte[] fileBytes = System.IO.File.ReadAllBytes(path); string fileName = "abc.pdf"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Zip, fileName); } if (pathList.Count > 1) { var id = Session.SessionID; var archive = Server.MapPath("~/archive.zip"); var temp = Server.MapPath("~/temp"); // clear any existing archive if (System.IO.File.Exists(archive)) { System.IO.File.Delete(archive); } // empty the temp folder Directory.EnumerateFiles(temp).ToList().ForEach(f => System.IO.File.Delete(f)); // copy the selected files to the temp folder pathList.ForEach(f => System.IO.File.Copy(f, Path.Combine(temp, Path.GetFileName(f)))); // create a new archive ZipFile.CreateFromDirectory(temp, archive); return File(archive, "application/zip", "archive.zip"); //return File(archive, MimeMapping.GetMimeMapping(archive)); } return null; }
Так что выше archive.zip файл создается на сервере. Но у меня не появляется окно подтверждения загрузки в браузере.
Пожалуйста, помогите мне решить эту проблему.
Что я уже пробовал:
Я искал везде в интернете и пытался в течение дня.