【发布时间】:2020-05-22 14:26:51
【问题描述】:
我正在尝试使用 ajax 下载 zip 文件, 我从控制器端返回如下。如果我使用“window.location.href”,我可以下载 但我想用ajax下载。
控制器返回码:
using (MemoryStream memoryStream = new MemoryStream())
{
zip.Save(memoryStream);
return File(memoryStream.ToArray(), "application/zip", zipName);
}
视图侧的ajax调用
$.ajax({
url: "url",
cache: false,
type: "GET",
contentType: "application/zip; charset=utf-8",
success: function (results) {
debugger
var result = results;
debugger
}
});
请帮助我使用 ajax 下载 zip 文件
提前致谢
【问题讨论】:
-
答案对你有用吗?
-
嘿嗨,我正在尝试,但在这一行出现错误 var url = window.URL.createObjectURL(data);在ajax成功。我可以使用 window.location.href 下载,但如果我使用它,我会在该页面的其他字段中遇到一些问题,所以我想使用 ajax 下载它。但是我收到这样的错误“无法在'URL'上执行'createObjectURL':找不到与提供的签名匹配的函数。”
-
您需要确保向您提到的函数提供 blob 类型的数据,我已经更新了我的答案,请参阅调用'createObjectUrl'之前的行
-
我试过了,但我下载的是空的 zip 文件
-
1.您确定在您的控制器中返回的数据流确实是一个 zip 文件吗?
标签: c# ajax asp.net-mvc