JS 下载 URL 链接文件(点击按钮、点击a标签、支持代理与非代理下载)

简介: JS 下载 URL 链接文件(点击按钮、点击a标签、支持代理与非代理下载)

一、简介

  • dowload.js(导入项目即可使用,根据项目框架调整导出方式),Demo示例地址
  • 注意:a 标签中 download 属性可以更改下载文件的文件名。但是如果是跨域的话,download 属性就会失效,所以通过 a 标签下载的时候,传入的 filename 没有生效,则需要检查是否跨域了。
  • 支持 原生 使用,也支持 VueReact 等使用。

二、Vue 使用

  • vue.config.js 代理配置,配置文件有调整需要重新启动项目,注意:这里配置的代理,服务器端也需要配置上,否则无法生效,下载也会失败
devServer: {
  // 端口号
  port: 8080,
  // 配置不同的后台API地址
  proxy: {
    '/dowload1': {
      target: 'https://gimg2.baidu.com',
      ws: false,
      changeOrigin: true,
      pathRewrite: {
        '^/dowload1': ''
      }
    },
    '/dowload2': {
      target: 'https://scpic.chinaz.net',
      ws: false,
      changeOrigin: true,
      pathRewrite: {
        '^/dowload2': ''
      }
    }
  }
}
  • 页面使用
<template>
  <div>
    <div class="dowload-btn" @click="touchProxyDowload1">按钮-代理下载</div>
    <div class="dowload-btn" @click="touchProxyDowload2">按钮-代理下载-自定义文件名</div>
    <div class="dowload-btn">
      <a href="/dowload2/files/pic/pic9/202103/hpic3704.jpg" download>a标签-代理下载</a>
    </div>
    <div class="dowload-btn">
      <a href="/dowload1/image_search/src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201311%2F17%2F174124tp3sa6vvckc25oc8.jpg&refer=http%3A%2F%2Fattach.bbs.miui.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1618976641&t=ca698f4ed0e96eb2f269ccff644bda03" download="avatar.jpg">a标签-代理下载-自定义文件名</a>
    </div>
  </div>
</template>
<script>
import { DOWLOAD_FILE, DOWLOAD_FILE_PRO } from './dowload'
export default {
  data () {
    return {
      // 下载测试连接,百度随便搜的图片地址:
      // https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201311%2F17%2F174124tp3sa6vvckc25oc8.jpg&refer=http%3A%2F%2Fattach.bbs.miui.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1618976641&t=ca698f4ed0e96eb2f269ccff644bda03
      // https://scpic.chinaz.net/files/pic/pic9/202103/hpic3704.jpg
    }
  },
  methods: {
    // 按钮-代理下载(代理配置存放在 vue.config.js,也可以放在服务器中配置)
    touchProxyDowload1 () {
      // 有后缀的则会使用当前后缀图片名称,也可以像上面那样自定义
      DOWLOAD_FILE('/files/pic/pic9/202103/hpic3704.jpg', '/dowload2')
    },
    // 按钮-代理下载-自定义文件名(代理配置存放在 vue.config.js,也可以放在服务器中配置)
    touchProxyDowload2 () {
      // 这种没有后缀的图片需要自己传入图片名称带后缀.png .jpg ...
      DOWLOAD_FILE_PRO('/image_search/src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201311%2F17%2F174124tp3sa6vvckc25oc8.jpg&refer=http%3A%2F%2Fattach.bbs.miui.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1618976641&t=ca698f4ed0e96eb2f269ccff644bda03', 'avatar.png', '/dowload1')
    }
  }
}
</script>
  • Demo效果


相关文章
|
8天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
14 0
|
19天前
|
JavaScript 前端开发
js实现点击音频实现播放功能
js实现点击音频实现播放功能
|
21天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
18 0
|
2月前
|
JavaScript
uni-app中关于格式化时间的js文件
uni-app中关于格式化时间的js文件
32 0
|
3月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
|
2天前
|
Rust JavaScript 安全
🚀JS使用Wasm为你的文件MD5计算装上火箭引擎🚀
🚀JS使用Wasm为你的文件MD5计算装上火箭引擎🚀
|
2天前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之阿里云Serverless函数计算中,在Node.js环境中执行jar文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
8 0
|
5天前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
20 1
|
18天前
|
JavaScript
【vue】vue2 导入外部js文件如何拿到方法的返回值
【vue】vue2 导入外部js文件如何拿到方法的返回值
11 1
|
22天前
|
JavaScript
js生成二维码点击可放大
js生成二维码点击可放大