0

我想制作一个功能,它会在没有服务器帮助的情况下在客户端强制下载文件。以下函数不起作用并显示标头未定义的错误。帮助将不胜感激。

function download() {

   var url = "C:\Koala.jpeg";
   var request = new XMLHttpRequest();
   header("Content-Type: application/force-download");
   header("Content-disposition: attachment; filename=url");
   header("Content-type: application/octet-stream");

       window.open(url, 'Download');
}
4

2 回答 2

1

以这种方式不可能做到这一点。在您的 JavaScript 方式中,您告诉浏览器强制下载路径为 C:\Koala.jpeg 的文件。不仅如此,您还没有对请求对象做任何事情,而且据我所知,函数 header() 不存在。

这意味着浏览器必须从本地文件系统下载文件。从而让脚本访问您的文件系统。这是一个重大的安全问题,永远不会发生。

现在,如果您真正想做的是从远程服务器下载文件,您需要指示您的 Web 服务器使用标准方法下推文件以下载文件。尽管用户仍然可以取消下载,因为您(作为开发人员)不能强迫用户在未经他们许可的情况下对其文件系统执行任何操作。

从您的网络服务器下载文件需要了解您的环境,因此我们可能会为您指明正确的方向。

干杯。

于 2013-11-13T10:23:30.870 回答
0

这实际上是可能的,我想出的解决方案非常简单。在 html 中的 a 标签,如果它有一个下载属性,它会下载文件,而不是查看它。我们可以使用它并拥有一个带有下载属性和隐藏属性的标签,然后通过假装点击它来使用 JavaScript 激活它。以下代码片段应下载猫图片。

document.getElementById('download').click();
<a id="download" href="https://docs.google.com/uc?id=0B0jH18Lft7ypSmRjdWg1c082Y2M" download hidden></a>

于 2015-06-25T15:19:44.293 回答