将IIS中的文件下载为zip文件

时间:2019-06-26 06:54:02

标签: c# .net asp.net-mvc iis

我只想从IIS文件夹中下载文件。我可以通过jquery在后台填充列表来获取所有动态文件,但随后在控制器端,可以认为memoryStream可以找到所有文件并正确添加zip档案。我无法下载zip文件压缩文件。为什么?

感谢您的帮助...

public ActionResult SaveAllFiles(List<string> ImgPath) 
{ 
    if (ImgPath != null && ImgPath.Any())
    { 
        using (var ms = new MemoryStream())
        {
            using (var ziparchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
            {
                for (int i = 0; i < ImgPath.Count(); i++)
                {
                    string path = ImgPath[i].Substring(1).Replace("/", "\\");
                    string path2 = AppDomain.CurrentDomain.BaseDirectory + path;
                    ziparchive.CreateEntryFromFile(path2, path);
                }
            }                    
            return File(ms.ToArray(), "application/zip", "Attachments.zip");
        }
    }
    return View();
}

1 个答案:

答案 0 :(得分:0)

AJAX(异步JavaScript和XML)是异步的,要从服务器下载任何文件,请求必须是同步的,ajax不支持文件下载

要解决此问题,请参见thisthis,这将为文件下载提供“ Ajax like”体验