首页 > 其他分享 >springboot+vue导出本地可执行文件

springboot+vue导出本地可执行文件

时间:2023-09-15 18:33:05浏览次数:42  
标签:可执行文件 vue springboot bis file new null os response

1、前端页面增加下载链接

<a href="http://localhost:80/system/download" download="xxx.exe">下载地址</a>

 2、后端读取文件下载

 //下载文件
    @GetMapping("/system/download")
    public void download(HttpServletResponse response) {
        String filepath ="E:/file";
        File file = new File(filepath + "/xxx.exe");
        byte[] buffer = new byte[1024];
        BufferedInputStream bis = null;
        OutputStream os = null;
        try {
            //文件是否存在
            if (file.exists()) {
                //设置响应
                response.setContentType("application/octet-stream;charset=UTF-8");
                response.setCharacterEncoding("UTF-8");
                response.setHeader("Content-Disposition", "attachment; filename=xxx.exe");//写入文件具体名称
                os = response.getOutputStream();
                bis = new BufferedInputStream(new FileInputStream(file));
                while (bis.read(buffer) != -1) {
                    os.write(buffer);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (bis != null) {
                    bis.close();
                }
                if (os != null) {
                    os.flush();
                    os.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

  3、将下载路径配置放入无需验证列表,放入SecurityConfig.java中,否则报错401

.antMatchers("/system/download").permitAll()

  

标签:可执行文件,vue,springboot,bis,file,new,null,os,response
From: https://www.cnblogs.com/webttt/p/17705707.html

相关文章

  • vue大转盘旋转效果-停在随机定位的奖品处
    代码有点乱,给予vue写的,奖品可以自定义数量抽奖也是随机生成了奖品的下标,然后停在该下标的位置里面有个大转盘的背景图,自己随便找个圆形图片放上去就行了<!--这个案例大概实现了停止在初始位置,误差在±10度左右增加了奖品分布--><template><divclass="hello"><div......
  • Docker+harbor+rancher2.6.3部署springboot项目
    1、在pom的文件中添加以下配置<build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId......
  • vue3.3.x setup 新实验性特性 defineModel 定义多个属性
    由于有些业务组件需要定义多个响应式props,类似这种(比较懒,没上ts),在vue3.3.x以前,如果不用三方库,代码会变得很繁琐<scriptsetup> constprops=defineProps({ modelValue:{ type:Object, default:()=>({}) }, fields:{ type:Object, default:()=>(......
  • vue前后端分离项目中,对于空字符串转可空类型出错的解决办法
    环境:netcore 6.0+序列化采用自带的System.Text.Json工具使用vue做前后端分离时,我们提交的对象中,可能有些字段是为空字符串,但是对应接口要求是int?,decimal?datetime?等类型。那么在序列化时,就会报错。因为空字符串无法直接反序列化为null 所以我们需要自定义一个转换规......
  • 原生HTML单页面使用vue框架
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=devi......
  • antdesign vue通用表单生成页面
    效果图效果图由于涉及企业敏感信息,信息进行了打码,还请多多包涵。。。点击左侧菜单树,右侧加载不同table,并且绑定列名不同(说明:前两列企业名称和城市名称固定不变)技术思路左侧菜单为标识,控制表单页面的布局和模块显示,字段显示隐藏,可根据下面2附图加深理解,由于信息敏感问题,暂时不提供......
  • 解决SpringBoot Async异步方法获取不到Security Context
     SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);这样设置的话很不安全,不废话,直接上代码,改造一下AsyncConfig就可以了,线程也安全/***@description:线程池的配置*/@ConfigurationpublicclassAsyncConfig{privates......
  • vue-day02
    模版语法html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>&......
  • Vue Debug Reac 配置
    https://zhuanlan.zhihu.com/p/475999585 作为前端开发,基本每天都要调试Vue/React代码,不知道大家都是怎么调试的,但我猜大概有这么几种:不调试,直接看代码找问题console.log打印日志用ChromeDevtools的debugger来调试用VSCode的debugger来调试不同的调试方式效......
  • vue vue-devtools调试工具神器安装
    目录vuevue-devtools调试工具神器安装前言chrome商店直接安装手动安装第一步:找到vue-devtools的github项目,并将其clone到本地.vue-devtools第二步:安装项目所需要的npm包第三步:编译项目文件第四步:添加至chrome游览器vue-devtools如何使用文章转自vuevue-devtools调试工具神器安......