当前位置:首页 > VUE

vue实现本地文件下载

2026-02-23 02:32:48VUE

使用 <a> 标签下载

通过动态创建 <a> 标签并设置 download 属性实现文件下载。适用于已知文件路径或 Blob 数据:

<template>
  <button @click="downloadFile">下载文件</button>
</template>

<script>
export default {
  methods: {
    downloadFile() {
      const link = document.createElement('a')
      link.href = '/path/to/file.pdf' // 文件路径或Blob URL
      link.download = 'filename.pdf' // 下载文件名
      link.click()
    }
  }
}
</script>

使用 Blob 对象下载二进制数据

适用于从 API 获取二进制数据(如后端返回文件流)的场景:

<script>
export default {
  methods: {
    async downloadFromAPI() {
      const response = await fetch('/api/download')
      const blob = await response.blob()
      const url = URL.createObjectURL(blob)

      const a = document.createElement('a')
      a.href = url
      a.download = 'document.pdf'
      document.body.appendChild(a)
      a.click()
      document.body.removeChild(a)
      URL.revokeObjectURL(url)
    }
  }
}
</script>

使用 FileSaver.js 库

通过第三方库简化下载流程,支持更复杂的场景:

npm install file-saver
<script>
import { saveAs } from 'file-saver'

export default {
  methods: {
    saveFile() {
      const blob = new Blob(['文件内容'], { type: 'text/plain;charset=utf-8' })
      saveAs(blob, 'example.txt')
    }
  }
}
</script>

下载 Base64 编码文件

处理 Base64 格式的文件数据:

<script>
export default {
  methods: {
    downloadBase64() {
      const base64Data = 'data:application/pdf;base64,JVBERi0x...'
      const link = document.createElement('a')
      link.href = base64Data
      link.download = 'file.pdf'
      link.click()
    }
  }
}
</script>

注意事项

  • 跨域限制:非同源文件需要服务端配置 CORS 头
  • 移动端兼容性:部分移动浏览器可能限制程序化下载
  • 大文件处理:超过内存限制的文件建议分块下载
  • 安全策略:某些浏览器可能阻止混合内容(HTTP/HTTPS)的下载

vue实现本地文件下载

标签: 本地文件vue
分享给朋友:

相关文章

vue实现路由导航

vue实现路由导航

路由导航的实现方式 在Vue中,路由导航主要通过Vue Router实现。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。 基本路由配置 安装Vue Router后…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue 实现复选

vue 实现复选

Vue 实现复选功能 在 Vue 中实现复选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动收集用户选择的复选框值。…

vue 实现菜单

vue 实现菜单

Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue 实现列表

vue 实现列表

Vue 实现列表的方法 在 Vue 中实现列表通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 指令遍历数组,渲染列表项。ite…