当前位置: 首页 > news >正文

前端下载文件重命名

//引入使用
 downloadFileRename(url,name.ext)

//下载文件并重命名
export function downloadFileRename(url, filename) {
  function getBlob(url) {
    return new Promise((resolve) => {
      const xhr = new XMLHttpRequest()
      xhr.open('GET', url, true)
      xhr.responseType = 'blob'
      xhr.onload = () => {
        if (xhr.status === 200) {
          resolve(xhr.response)
        }
      }
      xhr.send()
    })
  }
  function saveAs(blob, filename) {
    if (window.navigator.msSaveOrOpenBlob) {
      navigator.msSaveBlob(blob, filename)
    } else {
      const link = document.createElement('a')
      const body  = document.querySelector('body')

      link.href = window.URL.createObjectURL(blob)
      link.download = filename

      // fix Firefox
      link.style.display = 'none'
      body.appendChild(link)

      link.click()
      body.removeChild(link)

      window.URL.revokeObjectURL(link.href)
      return
    }
  }
  getBlob(url).then((blob) => {
    saveAs(blob, filename)
  })
}

 

//引入使用downloadFileRename(url,name.ext)//下载文件并重命名
export function downloadFileRename(url, filename) {function getBlob(url) {return new Promise((resolve) => {const xhr = new XMLHttpRequest()xhr.open('GET', url, true)xhr.responseType = 'blob'xhr.onload = () => {if (xhr.status === 200) {resolve(xhr.response)}}xhr.send()})}function saveAs(blob, filename) {if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename)} else {const link = document.createElement('a')const body  = document.querySelector('body')link.href = window.URL.createObjectURL(blob)link.download = filename// fix Firefoxlink.style.display = 'none'body.appendChild(link)link.click()body.removeChild(link)window.URL.revokeObjectURL(link.href)return}}getBlob(url).then((blob) => {saveAs(blob, filename)})
}
http://www.lryc.cn/news/230654.html

相关文章:

  • 【23真题】厉害,这套竟有150分满分!
  • 44. Adb调试QT开发的Android程序实用小技巧汇总
  • nacos集群配置(超完整)
  • 无线WiFi安全渗透与攻防(三) 无线信号探测(目前仅kismet)
  • Flutter的Widget, Element, RenderObject的关系
  • 测试员练就什么本领可以让自己狂揽10个offer
  • vue中实现图片懒加载的几种方法
  • Axure9基本操作
  • Docker - 网络
  • vue、react中虚拟的dom
  • Elasticsearch:ES|QL 快速入门
  • 7-1 进步排行榜
  • 解决删除QT后Qt VS Tools中Qt Options中未删除的错误
  • Django(五、视图层)
  • Git 工作流程、工作区、暂存区和版本库
  • PLSQL使用技巧
  • DEC 深度编码聚类函数
  • ubuntu中cuda12.1配置(之前存在11.1版本的cuda)(同时配置两个版本)
  • 千兆路由只有200M,原来是模式选择不对,也找到了内网不能通过动态域名访问内部服务的原因
  • 【10】maven打包报错 spring-boot-maven-plugin 与spring-boot 版本的不一致
  • SQLAlchemy 在 Flask 应用中的使用和最佳实践
  • FineReport -问题学习图表设计图表类型-单元格扩展父子格-报表预览
  • 微信小程序广告banner、滚动屏怎么做?
  • Network(一)计算机网络介绍
  • 【数据结构】堆(Heap):堆的实现、堆排序、TOP-K问题
  • 保护数字前沿:下一代防火墙如何塑造网络安全的未来
  • 深入理解Java中的String.join方法
  • 【MySQL系列】 第三章 · 函数
  • 微信小程序wxss定位/选择/查找元素的几种方式
  • Canvas—从入门到案例实现