欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

從Springboot項(xiàng)目中下載文件的具體過(guò)程

 更新時(shí)間:2021年07月27日 09:53:01   作者:文字跳動(dòng)  
最近在做一個(gè)臨時(shí)的項(xiàng)目,APP端在檢測(cè)到程序有更新時(shí),需要去后臺(tái)下載新的安裝包,接下來(lái)通過(guò)本文給大家分享從Springboot項(xiàng)目中下載文件的具體過(guò)程,感興趣的朋友一起看看吧

最近在做一個(gè)臨時(shí)的項(xiàng)目,APP端在檢測(cè)到程序有更新時(shí),需要去后臺(tái)下載新的安裝包。具體過(guò)程如下:

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包下載結(jié)果:",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()+"系統(tǒng)找不到指定的文件";
            return "系統(tǒng)找不到指定的文件";
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (bis !=null) {
                try {
                    bis.close();
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return "success";
    }

訪問(wèn):http://127.0.0.1:8081/ymd/downApp 文件就下載下來(lái)了,本方法借鑒了 網(wǎng)絡(luò)上的一些文章

到此這篇關(guān)于從Springboot項(xiàng)目中下載文件的文章就介紹到這了,更多相關(guān)Springboot項(xiàng)目下載文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何利用 Either 和 Option 進(jìn)行函數(shù)式錯(cuò)誤處理

    如何利用 Either 和 Option 進(jìn)行函數(shù)式錯(cuò)誤處理

    這篇文章主要介紹了如何利用 Either 和 Option 進(jìn)行函數(shù)式錯(cuò)誤處理。在 Java 中,錯(cuò)誤的處理在傳統(tǒng)上由異常以及創(chuàng)建和傳播異常的語(yǔ)言支持進(jìn)行。但是,如果不存在結(jié)構(gòu)化異常處理又如何呢?,需要的朋友可以參考下
    2019-06-06
  • 淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    下面小編就為大家?guī)?lái)一篇淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • java 實(shí)現(xiàn)發(fā)短信功能---騰訊云短信

    java 實(shí)現(xiàn)發(fā)短信功能---騰訊云短信

    如今發(fā)短信功能已經(jīng)成為互聯(lián)網(wǎng)公司的標(biāo)配,接下來(lái)通過(guò)本文給大家介紹java 實(shí)現(xiàn)發(fā)短信功能---騰訊云短信 ,需要的朋友可以參考下
    2019-08-08
  • Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    這篇文章主要介紹了Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案

    Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案

    我們經(jīng)常會(huì)遇到一下問(wèn)題:Spring對(duì)靜態(tài)變量的注入為空、在構(gòu)造函數(shù)中使用Spring容器中的Bean對(duì)象,得到的結(jié)果為空。不要擔(dān)心,本文將為大家介紹如何解決這些問(wèn)題,跟隨小編來(lái)看看吧
    2021-11-11
  • Java下載安裝和環(huán)境變量配置圖文教程

    Java下載安裝和環(huán)境變量配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了Java下載安裝和環(huán)境變量配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • java中transient關(guān)鍵字的作用解析

    java中transient關(guān)鍵字的作用解析

    這篇文章主要介紹了java中transient關(guān)鍵字的作用解析,日常業(yè)務(wù)中,為了安全起見(jiàn),有些敏感信息我們不希望在網(wǎng)絡(luò)間被傳輸可以使用transient對(duì)字段進(jìn)行修飾,不進(jìn)行序列化,則返回獲取到的字段為null,需要的朋友可以參考下
    2023-11-11
  • 10分鐘搞定Java并發(fā)隊(duì)列

    10分鐘搞定Java并發(fā)隊(duì)列

    這篇文章主要介紹了Java并發(fā)隊(duì)列,對(duì)此感興趣的同學(xué),可以參考下
    2021-04-04
  • java高級(jí)用法之JNA中的Structure

    java高級(jí)用法之JNA中的Structure

    這篇文章主要介紹了java高級(jí)用法之JNA中的Structure,JNA提供了Structure類,來(lái)幫助我們進(jìn)行這些映射處理,下面文章詳細(xì)的介紹過(guò)程需要的小伙伴可以參考一下
    2022-04-04
  • 使用synchronized關(guān)鍵字實(shí)現(xiàn)信號(hào)量的方法

    使用synchronized關(guān)鍵字實(shí)現(xiàn)信號(hào)量的方法

    在Java中,信號(hào)量(Semaphore)是一種常用的同步工具,它可以用來(lái)控制對(duì)共享資源的訪問(wèn)數(shù)量,下面,我們將使用Synchronized關(guān)鍵字來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的信號(hào)量,我們的目標(biāo)是實(shí)現(xiàn)一個(gè)計(jì)數(shù)信號(hào)量,其中信號(hào)量的計(jì)數(shù)指示可以同時(shí)訪問(wèn)某一資源的線程數(shù),需要的朋友可以參考下
    2024-04-04

最新評(píng)論