C# 将IIS中的文件作为zip文件下载

C# 将IIS中的文件作为zip文件下载,c#,.net,asp.net-mvc,iis,C#,.net,Asp.net Mvc,Iis,我只想从IIS文件夹下载文件。我可以通过jquery在后台填写列表来获取所有动态文件。这已经完成,但在控制器端,尽管memoryStream可以找到所有文件并正确添加zip文件。我无法下载带有zip文件的zip文件。为什么 谢谢你的帮助 public ActionResult SaveAllFiles(List<string> ImgPath) { if (ImgPath != null && ImgPath.Any()) { u

我只想从IIS文件夹下载文件。我可以通过jquery在后台填写列表来获取所有动态文件。这已经完成,但在控制器端,尽管memoryStream可以找到所有文件并正确添加zip文件。我无法下载带有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();
}
public ActionResult SaveAllFiles(列出ImgPath)
{ 
if(ImgPath!=null&&ImgPath.Any())
{ 
使用(var ms=new MemoryStream())
{
使用(var ziparchive=new ziparchive(ms,ZipArchiveMode.Create,true))
{
对于(int i=0;i
AJAX(异步JavaScript和XML)是异步的,要从服务器下载任何文件,请求必须是同步的,AJAX不支持文件下载


对于解决方法,请参阅和,这将提供“类似Ajax”的文件下载体验

出了什么问题?错误消息是什么?将zip mime类型添加到IIS,然后下载。实际上,当我在ziparchive中调试CreateEntryFromFile时,没有错误文本。条目“引发了类型为“system.notsupportedexception”的异常。正如我所说,没有异常,它正确地完成了返回文件,但未下载文件@Bob@Bosco我仍然没有将commit.its推送到我的本地服务器上。当我合并它时,我应该对其进行更改,我想是的。在
Web.config
IIS
中添加mime类型有两种方法。无论你选择哪一个都有它的含义。看见您应该与localThx man上的更改保持一致,在您回答后,我更改了我的jquery,现在可以了。@UtkuYıldız发布最终结果的代码可能对其他人有帮助。;-)您好,亲爱的@BobLokerse我改变了我的方法,从发布ImgPath列表,然后重定向到新选项卡和发布Id。通过这种方式,我将按Id检查ImgPath,然后检索路径并创建下载文件作为zip。如果您仍然询问最终结果,我将发布它。