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效果


相关文章
|
4月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
63 0
|
1月前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
3月前
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
182 10
|
4月前
|
存储 开发框架 JavaScript
Node.js实现短链接(ShortLink):shortid、epxress让URL更简单
Node.js实现短链接(ShortLink):shortid、epxress让URL更简单
128 0
Node.js实现短链接(ShortLink):shortid、epxress让URL更简单
|
5月前
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
|
5月前
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
4月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
243 0
|
4月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
269 0
|
5月前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
79 0
|
JavaScript 前端开发 设计模式
《JavaScript设计模式》——第11章 牛郎织女——代理模式 11.1无法获取图片上传模块数据
由于用户相册模块上传的照片量越来越大,导致服务器端需要将图片上传模块重新部署到另外一个域(可理解为另一台服务器)中,这样对于前端来说,用户上传图片的请求路径发生变化,指向其他服务器,这就导致跨域问题。
1386 0

热门文章

最新文章