zoukankan      html  css  js  c++  java
  • 后端如果返回一个文件的地址,前端实现下载,可以借助原生ajax来实现

    实现代码如下所示:
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      <input type="button" value="test" onclick="test()">
      
      <script>
        const fileInfo = {
          url: 'pdf/5ea56710fb5a2fdad7cabcf3.pdf',
          name: 'b.pdf'
        }
        function test() {
          downloadUrlFile(fileInfo.url)
        }
        function downloadUrlFile(url) {
          const xhr = new XMLHttpRequest()
          xhr.open('GET', url, true)
          xhr.responseType = 'blob'
          xhr.onload = () => {
            if (xhr.status === 200) {
              saveAs(xhr.response, fileInfo.name)
            }
          }
          xhr.send()
        }
        function saveAs(data, name) {
            var urlObject = window.URL || window.webkitURL || window;
            var export_blob = new Blob([data]);
            var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')
            save_link.href = urlObject.createObjectURL(export_blob);
            save_link.download = name;
            save_link.click();
        }
      </script>
    </body>
    </html>
  • 相关阅读:
    Objective-C之Protocol
    Objective-C之集合对象的内存管理
    IOS的UI基础02
    IOS之UIImageView--小实例项目--带音效的拳皇动画
    IOS的UI基础01
    技术分享(持续更新)
    计算机英语词汇大全
    XCode的安装包校验伪真
    Objective-C之用C的字符来处理NSString相关的字符替换和拼接的问题
    Objective-C之代理设计模式小实例
  • 原文地址:https://www.cnblogs.com/lxz123/p/13283362.html
Copyright © 2011-2022 走看看