a链接有些图片不能下载的问题

情景:直接前端下载图片、pdf、mp4等文件,没有和后端交互。
常见用法:a链接加download属性

<a href="https://cdnxxxx.com/activity/abc.png" download="">下载</a>

问题:有些cdn上的图片、文件不能直接下载,直接打开。
解决方案:

<div onclick="handleDownload('https://cdnxxxx.com/activity/load.pdf')">下载</div>

<script>
    function handleDownload(str) {
      const name = "附件";
      const url = str;
      const suffix = url.substring(url.lastIndexOf("."), url.length);
      
      const x = new XMLHttpRequest();
      x.open("GET", url, true);
      x.responseType = 'blob';
      x.onload=function(e) {
          const url = window.URL.createObjectURL(x.response);
          const a = document.createElement('a');
          a.href = url;
          a.download = name + suffix;
          a.click()
      };
      x.send();
    }
</script>

ps:该方法实验了一部分,如有失效的时候,欢迎指出。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容