如何创建文件下载按钮? 和 Axios 不工作

2023-12-07

我试图在我的个人网站上创建一个下载按钮,供人们下载我的 docx 简历,但遇到了一些问题。

首先我用简单的 href 链接来做到这一点

<a href="xxx.docx" download><button>download my resume</button></a>

但没有用。

然后我尝试了 axios 方式,创建一个按钮,并将单击操作绑定到下载 File(){} 方法,但不起作用,出现错误

GET http://localhost:8080/assets/assets/imgs/cv_eudora.docx404(未找到)

Uncaught (in promise) Error: Request failed with status code 404
    at createError (createError.js?2d83:16)
    at settle (settle.js?467f:17)
    at XMLHttpRequest.handleLoad (xhr.js?b50d:59)

screenshot

我认为这是因为 downloadFile(){} 函数中的 url 部分没有正确说明,但不知道在 vue 中编写路径的正确方法。路径本身应该是正确的,因为当我这样做时,它甚至一路上都有自动提示选项。

<button @click="downloadFile()">download my resume</button>
downloadFile() {
      axios({
        url: "../assets/imgs/cv_eudora.docx",
        method: "GET",
        responseType: "blob" // important
      }).then(response => {
        const url = window.URL.createObjectURL(new Blob([response.data]));
        const link = document.createElement("a");
        link.href = url;
        link.setAttribute("download", "eudoraCV.docx"); //or any other extension
        document.body.appendChild(link);
        link.click();
      });
    }

这里的问题是 Webpack 加载器不适用于<a href>URL,以便默认情况下它们不会包含在您的构建中。

你在这里有两个选择......

  1. 将你的文件放入the public folder并像这样引用它

    export default {
      // add the base URL to your component's "data" function
      data: () => ({ publicPath: process.env.BASE_URL })
    }
    
    <a :href="`${publicPath}cv_eudora.docx`" download>
      download my resume
    </a>
    

    or

  2. 使用显式导入您的文件require()功能

    <a :href="require('../assets/imgs/cv_eudora.docx')" download="cv_eudora.docx">
      download my resume
    </a>
    

    然而,要使其工作,您需要配置 Webpack 来加载.docx文件通过file-loader. In vue.config.js,您可以通过添加新的模块规则来告诉 Webpack 捆绑文档...

    module.exports = {
      chainWebpack: config => {
        config.module.rule('downloads')
          // bundle common document files
          .test(/\.(pdf|docx?|xlsx?|csv|pptx?)(\?.*)?$/)
          .use('file-loader')
            // use the file-loader
            .loader('file-loader')
            // bundle into the "downloads" directory
            .options({ name: 'downloads/[name].[hash:8].[ext]' })
      }
    }
    

    See https://cli.vuejs.org/guide/webpack.html#adding-a-new-loader

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建文件下载按钮? 和 Axios 不工作 的相关文章

随机推荐

  • 如何使用 PHP 或 Ruby 从图像中删除某些颜色?

    假设有 3 个圆圈 红 蓝 黑 我只希望保留黑色圆圈 如何去除红色和蓝色圆圈 既然您要求 PHP 解决方案 首先加载你的图片图像从png创建或其他图像格式的类似功能 然后 使用imagesx and imagesy来获取图像的大小 现在 您
  • 如何使用CSS将子div居中对齐父div内?

    我是 html 和 css 新手 我不知道如何在父 div 内居中对齐子 div 这是我的代码 请回答并解决我的问题 CSS page position relative width 1220px height 670px backgrou
  • Flutter apk已安装但无法找到/打开

    我花了几周的时间试图解决这个问题 但我无法让它发挥作用 Context 颤振运行 我可以执行 flutter run 它将在我的手机上启动该应用程序 关闭应用程序后 我在应用程序页面中看不到它 我无法搜索它 访问 应用程序的唯一方法是转到设
  • 你能在 kivy 文件中换行吗?

    我的 kv 中有几行 文件非常长 80多个字符 我想知道是否有办法在下一行包装 继续它们 例如 我该如何从这个 Line points self pos 0 5 self pos 1 2 self pos 0 self width 5 se
  • Win32 - 从 C 代码回溯

    我目前正在寻找一种在 Windows 下从 C 代码 非 C 获取回溯信息的方法 我正在构建一个跨平台 C 库 具有引用计数内存管理功能 它还具有集成的内存调试器 可提供有关内存错误的信息 XEOS C 基础库 当发生故障时 启动调试器 提
  • Oracle JSON_OBJECT NULL ON NULL 子句不起作用

    我正在尝试让 Oracle 生成 JSONnullSQL 上的值NULL数据 如下 select json object key a value 1 key b value null null on null c1 json object
  • 在 mocha 中测试 NodeJS 时,域无法正确捕获错误

    当运行利用域进行错误处理的测试时 即使库内的域处理程序应该捕获错误 Mocha 仍然会抛出错误 如果我在 Mocha 之外执行代码 它会正常运行 让我相信问题出在 Mocha 上 Example foo js module exports
  • Java 中删除字符串中的空格

    我有一个像这样的字符串 mysz name john age 13 year 2001 我想删除字符串中的空格 我试过trim 但这只会删除整个字符串前后的空格 我也尝试过replaceAll W 但随后 也会被删除 我怎样才能获得一个字符
  • 如何在ajax响应中从字节流渲染pdf

    我正在开发一个移动应用程序 我们正在使用 jquery mobile 我们可以选择查看或下载 pdf 格式的记录 我无法控制后端 我将在 json 对象中获取 pdf 数据作为 ajax 响应 我想读取该数据并以 pdf 形式显示 我的下一
  • 共享 SD 卡中的图像

    我花了两周时间寻找如何共享存储在 SD 卡上的图像 但没有成功 This answer对我不起作用 也不是我正在寻找的 我正在与凸轮预览应用程序将图像存储到 SD 然后在应用程序内图库中显示它们 public class GalleryVi
  • 特定存储库的 Git 全局配置?

    意思是 有类似每个回购部分的东西 repo url 覆盖全局 不适用于特定存储库 选项 core filemode false editor notepad repo example com repo1 git core filemode
  • R 中的“错误恢复文件幻数”错误

    As in 加载 R 工作区时什么可能导致 错误的幻数 错误以及如何避免它 and R 有幻数 PNG 错误 我得到一个错误恢复文件幻数 error gt load fossilien dat Error bad restore file
  • 沙盒阻止我格式化字符串

    我有一个简单的常规脚本 node master echo I am about to try to use String format def jjj String format bob echo jjj 如果我将此脚本直接放入我的作业配置
  • GridLayout 未填充 JPanel

    我遇到 GridLayout 问题 并且整个 JPanel 未填充 我有一个 N M 网格 我用 N M 瓷砖填充它 它们扩展了 JPanel 添加所有这些图块后 JPanel 的底部和右侧仍然有空间 我认为 GridLayout 应该填满
  • Stateflow 在 reyclerview android kotlin 中引用整个数据

    嘿嘿我正在学习状态流在 Android 科特林中 我正在创建一个反向对话日历视图回收者视图 In my mainactivity有一个fragment 里面有我reyclerview 我的目标是做分页的东西 in my 回收者视图所以我先加
  • 使用 procf//status 了解进程状态

    我正在 Solaris 上工作 我知道如果有一个进程正在运行 就会有一个名为 proc
  • D lang - 在同一程序中使用 read 和 readln()

    我的 D 程序遇到了一个非常奇怪的问题 read s variable 本身工作得很好 而 readln variable 本身工作得很好 但是当我将两者放在一起时 readln 似乎被忽略了 使用 gdc 和 dmd 均发生错误 impo
  • 从头开始制作Android聊天应用程序

    我需要为Android 制作聊天应用程序 我想到使用PHP脚本来实现聊天应用程序 基本思想是将消息从android客户端发送到PHP脚本 并利用PHP脚本将消息发送到MySQL数据库 这些消息将广播给其他人 但问题是自动向其他人广播消息 有
  • 从列表列表中删除重复项

    我有一个Python列表列表 k 1 2 4 5 6 2 1 2 3 4 我想从中删除重复的元素 如果它是一个普通列表而不是我可以使用的列表set 但不幸的是 该列表不可散列 并且无法创建列表集 仅元组 所以我可以将所有列表转换为元组 然后
  • 如何创建文件下载按钮? 和 Axios 不工作

    我试图在我的个人网站上创建一个下载按钮 供人们下载我的 docx 简历 但遇到了一些问题 首先我用简单的 href 链接来做到这一点 a href xxx docx a