a标签href不能下载图片

我是图片,你打不开

http://file.ljcdn.com/psd-sinan-file/prod/appeal_evidence/8033CDBA76EE4E86AF2DEBB0F7C25F51/827276574726656364.jpg

浏览器可以打开的文件类型包括那些?

  • HTML格式
  • TXT格式
  • JPG/JPEG格式
  • GIF格式
  • PNG格式
  • ART格式
  • AU格式
  • AIFF格式
  • XBM格式 -- 还有SWF格式 也就是FLASH格式

处理

浏览器遇到二进制流文件只会下载

const loadAllFile = (dataList) => {
  dataList.forEach(i => downloadUrlFile(i))
  function downloadUrlFile(url) {
    const name = url.split('/')[url.split('/').length - 1]
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.setRequestHeader('Authorization', 'Basic a2VybWl0Omtlcm1pdA==');
    xhr.onload = (i) => {
      if (xhr.status === 200) {
        // 获取图片blob数据并保存
        save(xhr.response, name.split('?ak')[0]);
      }
    };
    xhr.send();
  }
  function save( data,name) {
    const urlObject = window.URL || window.webkitURL || window;
    const save_link = document.createElement("a")
    const export_blob = new Blob([data]);
    save_link.href = urlObject.createObjectURL(export_blob);
    save_link.download = name;
    document.body.appendChild(save_link);
    save_link.click()
    setTimeout(function(){
      document.body.removeChild(save_link)
    }, 1000)
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30