当前位置:首页 > VUE

vue实现静态文件下载

2026-02-25 19:05:54VUE

使用 <a> 标签直接下载

通过 HTML 原生 <a> 标签的 download 属性实现静态文件下载。将文件路径设置为 public 目录下的路径,避免打包工具处理文件。

<template>
  <a href="/files/example.pdf" download>下载PDF文件</a>
</template>

文件需存放在项目根目录的 public/files 文件夹中,Vue 会直接将该目录内容复制到构建输出目录。

通过 JavaScript 动态创建下载链接

使用 document.createElement 动态创建 <a> 标签并触发点击事件,适合需要条件触发下载的场景。

methods: {
  downloadFile() {
    const link = document.createElement('a')
    link.href = '/files/example.pdf'
    link.download = 'custom-filename.pdf'
    document.body.appendChild(link)
    link.click()
    document.body.removeChild(link)
  }
}

使用 axios 处理文件下载

当需要先请求后端接口或处理授权时,可通过 axios 获取文件流并创建下载。

import axios from 'axios'

methods: {
  async downloadFile() {
    const response = await axios.get('/api/download', {
      responseType: 'blob'
    })
    const url = window.URL.createObjectURL(new Blob([response.data]))
    const link = document.createElement('a')
    link.href = url
    link.download = 'file.pdf'
    link.click()
    window.URL.revokeObjectURL(url)
  }
}

使用第三方库 file-saver

对于更复杂的下载需求,可以引入 file-saver 库简化操作。

vue实现静态文件下载

npm install file-saver
import { saveAs } from 'file-saver'

methods: {
  downloadFile() {
    const blob = new Blob([fileContent], { type: 'application/pdf' })
    saveAs(blob, 'filename.pdf')
  }
}

注意事项

  • 静态文件应存放在 public 目录而非 assets 目录,避免被 webpack 处理
  • 动态生成下载链接后需要及时释放对象 URL 防止内存泄漏
  • 跨域下载需确保服务器配置正确的 CORS 头信息
  • 大文件下载建议显示进度条提示用户

标签: 静态文件
分享给朋友:

相关文章

旋转相册制作css文件

旋转相册制作css文件

旋转相册制作CSS文件 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的CSS文件示例,用于创建一个3D旋转相册效果。 基础HTML结构 在CSS文件之前,需确保HTML结构包含相册容器和…

uniapp 服务文件

uniapp 服务文件

uniapp 服务文件的概念 在 uniapp 中,服务文件通常指用于封装业务逻辑、接口请求或通用功能的 JavaScript 文件。这类文件通常存放在项目的 common 或 utils 目录下,便…

php下载文件实现

php下载文件实现

PHP 下载文件实现方法 使用 header() 函数强制下载 设置合适的 HTTP 头信息,强制浏览器下载文件而非直接打开。 $file_path = '/path/to/file.pdf'; $…

vue实现文件管理系统

vue实现文件管理系统

Vue 文件管理系统实现方案 核心功能模块设计 文件展示组件:使用树形结构展示目录层级,配合递归组件实现无限嵌套 上传下载功能:通过axios与后端API交互,支持拖拽上传和分片上传 权限控制系统:基…

vue实现拖动文件移动

vue实现拖动文件移动

Vue 实现文件拖动移动 实现文件拖动移动功能通常涉及 HTML5 的拖放 API 和 Vue 的事件处理。以下是具体实现方法: 基础拖放实现 在 Vue 组件中设置拖放区域并处理相关事件: &l…

如何启动react文件

如何启动react文件

启动 React 项目的步骤 确保已安装 Node.js 和 npm 在启动 React 项目之前,需确保系统已安装 Node.js(包含 npm)。可以通过以下命令检查是否安装成功: node -…