SpringBoot+Vue+Element-ui实现文件下载

这篇具有很好参考价值的文章主要介绍了SpringBoot+Vue+Element-ui实现文件下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.后端代码部分

2.前端代码部分

3.效果展示

1.后端代码部分

 @GetMapping("downloadFile")
    public void downloadFile(@RequestParam("filename") String filename,HttpServletResponse response) throws Exception {
        // 告知浏览器这是一个字节流,浏览器处理字节流的默认方式就是下载
        // 意思是未知的应用程序文件,浏览器一般不会自动执行或询问执行。浏览器会像对待,
        // 设置了HTTP头Content-Disposition值为attachment的文件一样来对待这类文件,即浏览器会触发下载行为
        response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
        // ,该响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者网页的一部分),还是以附件的形式下载并保存到本地。
        response.setHeader(HttpHeaders.CONTENT_DISPOSITION,"attachment;fileName="+ URLEncoder.encode(filename, "UTF-8"));
        File file = new File("d:/OBS/" + filename);
        //这里的“d:/OBS”是根据我路径下设置的,根据自己路径进行设置(注意要有相应的文件,方便下载)
        ServletOutputStream ros = response.getOutputStream();

        FileInputStream fis = new FileInputStream(file);
        byte[] bytes = new byte[2 * 1024];
        int len = 0;
        while ((len = fis.read(bytes)) != -1) {
            ros.write(bytes, 0, len);
        }

        ros.flush();
        ros.close();
        fis.close();

    }

2.前端代码部分

注意这里为了方便,省去了用axios作请求,而用href直接跳转,相当于一次请求访问

<template>
    <div>
      <el-button type="success" @click="downloadFile">下载文件</el-button>
    </div>
</template>

<script>
export default {

  methods: {
    downloadFile() {
      let a = document.createElement('a')
      a.href = 'http://127.0.0.1:8081/file/downloadFile?filename=pic.jpg'
    //上面根据自己配置情况作拼接
      document.body.appendChild(a)
      a.style.display = 'none'
      a.click()
      document.body.removeChild(a)
    }


  }
};
</script>

3.效果展示

SpringBoot+Vue+Element-ui实现文件下载,spring boot,vue.js

 SpringBoot+Vue+Element-ui实现文件下载,spring boot,vue.js

 下载成功文章来源地址https://www.toymoban.com/news/detail-523611.html

到了这里,关于SpringBoot+Vue+Element-ui实现文件下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用element-ui的el-upload进行excel文件上传与下载

    需求:前端上传文件后,后端接受文件进行处理后直接返回处理后的文件,前端直接再将文件下载下来。 通常我们都是直接使用el-upload的action属性来直接完成文件上传的操作,如果要进行后续文件的直接下载,可以在on-success中用代码进行操作,若存在401权限问题也可以直接

    2024年02月11日
    浏览(45)
  • vue+element-ui+springboot 在线表格编辑

    方法: 编辑excel 格式为需要的样子,另存为html 打开files文件,复制html部分代码和样式到vue文件 将需要编辑的部分使用控件填入 代码: 特别地: 服装列数可变,需要动态变换,同时有的可编辑,有的不可编辑 增加表格行数,可通过增加memberList 数据进行动态添加和删除,无

    2024年01月24日
    浏览(50)
  • Springboot04--vue前端部分+element-ui

    注意点:  这边v-model和value的区别:v-model是双向绑定的,value是单向绑定 li的key的问题  vue的组件化开发:  安装完之后可以在cmd里面使用以下指令  安装好之后,找到你放代码的目录,cmd,然后npm install -g @vue/cli  新手选第三个,然后取消掉下面这个  运行项目的代码:  

    2024年02月13日
    浏览(37)
  • springboot+vue+element-ui在线招投标系统

    本在线招投标系统管理员管理个人中心,投标人管理,招标人管理,评标人管理,招标信息管理,投标信息管理,评标信息管理,中标信息管理,系统管理。管理员负责所有的管理信息,招标人发布招标信息,然后投标人进行投标,评标人根据招标信息和投标信息进行评标。

    2024年02月07日
    浏览(72)
  • Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

    最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用 纯Vue2+Element-ui搭建 ,后端采用 Springboot+Mybatis 搭建,数据库采用 Mysql 。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表格excel导出等等功能。已开源至git,在

    2024年02月09日
    浏览(47)
  • vue+element-ui 实现下拉框滚动加载

    该功能是由 自定义滚动指令 结合下拉框 :remote-method 远程搜索 实现的 开启远程搜索 参考官方文档 绑定自定义指令 v-el-select-loadmore=“loadmore”

    2024年02月14日
    浏览(65)
  • Vue2 +Element-ui实现前端页面

    以一个简单的前端页面为例。主要是利用vue和element-ui实现。 里面涉及的主要包括:新建vue项目、一行多个输入框、页面实现等。   ①首先安装nodejs,这部分在此就不讲啦。 ②然后安装vue-cli: 查看是否安装成功: 安装成功之后就输出vue的版本 ③在cmd窗口新建一个vue2脚手架

    2024年02月16日
    浏览(45)
  • 基于vue+element-ui实现上传进度条

    目录 基于el-upload组件实现进度条的编写 后台进度前台进度条显示 基于el-upload组件实现进度条的编写 ①编写文件上传时的钩子函数 ②监听进度百分比 后台进度前台进度条显示 参考文章: 后台进度前台显示进度条_weixin_30646505的博客-CSDN博客 后端思路: ①创建一个类,封装进

    2023年04月08日
    浏览(45)
  • (vue)element-ui 表格实现勾选单选

    效果: 重选后: 解决参考:https://blog.csdn.net/m0_58373910/article/details/125912828

    2024年02月12日
    浏览(45)
  • vue2+element-ui 实现国际化

    在src目录下创建一个lang文件夹,同时创建zh.js(中文),en.js(英文),ja.js(日文),fr.js(法文)四个语言包js文件,并创建一个index.js文件,用来整合语言包 对于一个项目来说,一个语言包需要包含所有页面以及组件;在语言包以页面为单位,创建一个对象;对公共的title或者按钮名

    2024年02月02日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包