链接点击 - Javascript AJAX-文件下载,文件扩展名丢失,真实姓名丢失

时间:2017-09-07 08:18:17

标签: javascript jquery ajax

我有一个功能可以下载JSFIDDLE

中给出的文件(PDF / DOCS / CSV / xlsx / JPEG / PNG / GIF)

我正在使用这种下载文件的方式,因为像firefox这样的浏览器不允许下载图像文件,而是在不同的标签中打开它们。

现在,如果您尝试点击“点击下载”链接,该文件会被下载,但其真实姓名和扩展名将丢失。

我需要一些帮助才能理解如何实现这一目标。以下是代码:

<a href="#" data-link="https://i.imgur.com/xSjQNTx.jpg">Click to download</a>
var links = document.querySelectorAll("a"), i = 0, lnk;
while(lnk = links[i++]) {
  if (lnk.dataset.link.length) lnk.onclick = toBlob;
}

function toBlob(e) {
  e.preventDefault();
  var lnk = this, xhr = new XMLHttpRequest();
  xhr.open("GET", lnk.dataset.link);
  xhr.responseType = "blob";
  xhr.overrideMimeType("octet/stream");
  xhr.onload = function() {
    if (xhr.status === 200)
      window.location = (URL || webkitURL).createObjectURL(xhr.response);
  };
  xhr.send();
  return false
}

注意:我已经提到其他SO帖子,但他们没有真正帮助

0 个答案:

没有答案