gpt4 book ai didi

javascript - 有没有办法阻止IE10/IE11显示打开或保存提示

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:30 25 4
gpt4 key购买 nike

我正在使用类似 javascript blob 从服务器下载文件

let blob = new Blob([resposne['_body']], { type: contentType });
if (navigator.msSaveBlob) {
navigator.msSaveOrOpenBlob(blob, fileName); // in case of IE
} else {
let objectUrl = window.URL.createObjectURL(blob);
window.open(objectUrl);
}

上面的代码工作正常,但在 IE 中它显示一个对话框:

prompt

此外,如果我在 href 标签中放置一个直接的 pdf 链接,那么它也可以正常工作。所以看起来adobe插件没有问题。

我想要的是直接打开文件而不是显示这个提示。我试过 Registry hack as suggested here但没有任何运气。知道如何实现这一目标吗?

最佳答案

对于面临相同问题的任何人,我使用 window.open 解决了它。我没有下载响应,而是直接将 URL 传递给 window.open 之类的东西

window.open(apiUrl) // Exmp "host:api/documents/download?id=1"

注意:-API 应返回带有 header 类型集的流响应。在我的例子中,C# web API 方法是

public HttpResponseMessage Download(int id)
{
var data = _service.Download(id);
HttpResponseMessage result = null;
result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new ByteArrayContent(data);//here data is byte[]
var name = data.Name.ToLower().Contains(data.DocType.ToLower())
? data.Name
: $"{data.Name}{data.DocType}";
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("inline")
{
FileName = name
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping(name));
//here i am setting up the headers content type for example 'text/application-json'
return result;
}

希望对大家有帮助。

关于javascript - 有没有办法阻止IE10/IE11显示打开或保存提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com