【问题标题】:How to detect a prohibited file download?如何检测禁止的文件下载?
【发布时间】:2012-04-10 15:09:44
【问题描述】:

Internet Explorer 有一个安全设置,允许启用/禁用文件下载。我们的应用程序中有一个按钮,可以使用window.open("fileurl") 打开文件(例如 .xls)。是否可以在 javascript 中检测到下载被阻止(例如显示一些解释)?或者更复杂的是,是否有可能从请求标头中检测到它?

编辑:
我按照建议尝试了ajax来测试下载,但没有成功。我想保存或打开文件被阻止而不是实际下载。

var xhr = new XMLHttpRequest();
xhr.open("GET", docurl, false);
xhr.send(null);
var data = new VBArray(xhr.responseBody).toArray();//IE9 only

无论是否禁用下载,成功返回一个相同长度的数组。
Getting and Sending Binary Files with XMLHttpRequest
how do I access XHR responseBody (for binary data) from Javascript in IE?

编辑 2:
我的第二次尝试:

var wnd = window.open()
wnd.load=tst;
wnd.location.href= docurl

我尝试在加载时评估窗口 (tst),但我没有发现与是否禁止下载的区别。

【问题讨论】:

    标签: javascript internet-explorer httpwebrequest http-headers


    【解决方案1】:

    这是一个想法:有一个 ajax 请求来下载一个类似于被阻止的“测试文件”,具有相同的 mime 类型和一个真正的空文件,如果可能的话(但很小,可能 2KB)。然后,如果此类下载失败,...您还可以检查它是如何失败的(默默地,带有错误消息,...)..这将为您提供有关如何解决该问题的更多信息。

    【讨论】:

    • 我认为你不走运,因为现在它似乎被阻止在页面上下文之外。 “在操作系统上”。这些文件是否在 mime 类型为 octect/stream 时被阻塞?
    • 我认为可以被浏览器打开的文件(.txt,图像,...)是好的,其他的被阻止了。有人说即使 .pdf 也可以,但我没有成功确认。不知道是mime还是extension的影响,不过没关系,我只要打开或者下载就好了。
    【解决方案2】:

    现在有一个月左右的答案,所以我得出结论,没有解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2011-08-19
      • 2014-08-12
      相关资源
      最近更新 更多