首页 > 解决方案 > 将 IIS 中的文件下载为 zip 文件

问题描述

我只想从 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();
}

标签: c#.netasp.net-mvciis

解决方案


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

有关解决方法,请参见thisthis,这将为文件下载提供“类似 Ajax”的体验


推荐阅读