从Springboot项目中下载文件的具体过程

 更新时间:2021年07月27日 09:53:01   作者:文字跳动  
最近在做一个临时的项目,APP端在检测到程序有更新时,需要去后台下载新的安装包,接下来通过本文给大家分享从Springboot项目中下载文件的具体过程,感兴趣的朋友一起看看吧

最近在做一个临时的项目,APP端在检测到程序有更新时,需要去后台下载新的安装包。具体过程如下:

controller层:

/**
    * 下载app
    * @param response
    */
   @RequestMapping("downApp")
   @ResponseBody
   public void Download(HttpServletResponse response) {
       String fileName ="wuye.apk";
       String result = FileUtil.downloadFile(response, fileName);
       log.info("app包下载结果:",result);
   }

工具类:

public class FileUtil {
 
    public static String downloadFile(HttpServletResponse response, String fileName) {
        File path =null;
        response.setHeader("content-type","application/octet-stream");
        response.setContentType("application/octet-stream");
        try {
            response.setHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));
        }catch (UnsupportedEncodingException e2) {
            e2.printStackTrace();
        }
        byte[] buff =new byte[1024];
        BufferedInputStream bis =null;
        OutputStream os =null;
        try {
            path =new File(ResourceUtils.getURL("classpath:").getPath());
            os = response.getOutputStream();
            bis =new BufferedInputStream(new FileInputStream(new File(path +"/doc/" + fileName)));
            int i = bis.read(buff);
            while (i != -1) {
                os.write(buff,0, buff.length);
                os.flush();
                i = bis.read(buff);
            }
        }catch (FileNotFoundException e1) {
            //e1.getMessage()+"系统找不到指定的文件";
            return "系统找不到指定的文件";
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (bis !=null) {
                try {
                    bis.close();
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return "success";
    }

访问:http://127.0.0.1:8081/ymd/downApp 文件就下载下来了,本方法借鉴了 网络上的一些文章

到此这篇关于从Springboot项目中下载文件的文章就介绍到这了,更多相关Springboot项目下载文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现将PPT转为OFD过程详解

    Java实现将PPT转为OFD过程详解

    本文将通过Java后端程序代码展示如何实现将PPT幻灯片转成OFD格式,文中的示例代码讲解详细,对我们学习或工作有一定的帮助,需要的可以参考一下
    2022-01-01
  • Java synchronized关键字性能考量及优化探索

    Java synchronized关键字性能考量及优化探索

    这篇文章主要为大家介绍了Java synchronized关键字性能考量及优化探索示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Maven镜像地址配置示例大全

    Maven镜像地址配置示例大全

    这篇文章主要介绍了Maven镜像地址配置示例大全,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-06-06
  • spring配置扫描多个包问题解析

    spring配置扫描多个包问题解析

    这篇文章主要介绍了spring配置扫描多个包问题解析,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Java使用quartz实现定时任务示例详解

    Java使用quartz实现定时任务示例详解

    这篇文章主要为大家介绍了Java使用quartz实现定时任务示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Java Spring @Lazy延迟注入源码案例详解

    Java Spring @Lazy延迟注入源码案例详解

    这篇文章主要介绍了Java Spring @Lazy延迟注入源码案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • javaweb实现百度GPS定位接口(经纬度)

    javaweb实现百度GPS定位接口(经纬度)

    这篇文章主要介绍了javaweb实现百度GPS定位接口(经纬度),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Java的Swing编程中使用SwingWorker线程模式及顶层容器

    Java的Swing编程中使用SwingWorker线程模式及顶层容器

    这篇文章主要介绍了在Java的Swing编程中使用SwingWorker线程模式及顶层容器的方法,适用于客户端图形化界面软件的开发,需要的朋友可以参考下
    2016-01-01
  • Java NIO中的零拷贝原理

    Java NIO中的零拷贝原理

    这篇文章主要介绍了Java NIO中的零拷贝原理,零拷贝即Zero-Copy,顾名思义,零拷贝是指的一种非拷贝的方式来减少IO次数的工作方式,零拷贝的作用就是减少IO,提高IO效率,需要的朋友可以参考下
    2023-11-11
  • Spring事务注解@Transactional失效的八种场景分析

    Spring事务注解@Transactional失效的八种场景分析

    最近在开发采用Spring框架的项目中,使用了@Transactional注解,但发现事务注解失效了,所以这篇文章主要给大家介绍了关于Spring事务注解@Transactional失效的八种场景,需要的朋友可以参考下
    2021-05-05

最新评论