国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot入門(11)實(shí)現(xiàn)文件下載功能

livem / 3705人閱讀

摘要:在這篇博客中,我們將展示如何在中實(shí)現(xiàn)文件的下載功能。本次建立的項(xiàng)目的主要功能為文件下載,而且這也是唯一功能,當(dāng)然,作為例子,要盡可能簡(jiǎn)單,所以,功能簡(jiǎn)化為只下載盤目錄下的某一個(gè)文件。

??在這篇博客中,我們將展示如何在Spring Boot中實(shí)現(xiàn)文件的下載功能。
??還是遵循筆者寫博客的一貫風(fēng)格,簡(jiǎn)單又不失詳細(xì),實(shí)用又能讓你學(xué)會(huì)。
??本次建立的Spring Boot項(xiàng)目的主要功能為文件下載,而且這也是唯一功能,當(dāng)然,作為例子,要盡可能簡(jiǎn)單,所以,功能簡(jiǎn)化為只下載E盤music_eg目錄下的某一個(gè)文件。
??該Spring Boot項(xiàng)目的名稱為file_download,其具體結(jié)構(gòu)如下:

build.gradle文件的代碼如下:

buildscript {
    ext {
        springBootVersion = "2.0.3.RELEASE"
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "org.springframework.boot"
apply plugin: "io.spring.dependency-management"

group = "com.example"
version = "0.0.1-SNAPSHOT"
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

我們只需要?jiǎng)?chuàng)建一個(gè)控制器(Controler)文件,即Controller目錄下的File_Download.java,其完整目錄如下:

package com.example.file_download.Controller;

import java.io.*;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class File_Download {

    //實(shí)現(xiàn)Spring Boot 的文件下載功能,映射網(wǎng)址為/download
    @RequestMapping("/download")
    public String downloadFile(HttpServletRequest request,
                               HttpServletResponse response) throws UnsupportedEncodingException {

        // 獲取指定目錄下的第一個(gè)文件
        File scFileDir = new File("E://music_eg");
        File TrxFiles[] = scFileDir.listFiles();
        System.out.println(TrxFiles[0]);
        String fileName = TrxFiles[0].getName(); //下載的文件名

        // 如果文件名不為空,則進(jìn)行下載
        if (fileName != null) {
            //設(shè)置文件路徑
            String realPath = "E://music_eg/";
            File file = new File(realPath, fileName);

            // 如果文件名存在,則進(jìn)行下載
            if (file.exists()) {

                // 配置文件下載
                response.setHeader("content-type", "application/octet-stream");
                response.setContentType("application/octet-stream");
                // 下載文件能正常顯示中文
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

                // 實(shí)現(xiàn)文件下載
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                    System.out.println("Download the song successfully!");
                }
                catch (Exception e) {
                    System.out.println("Download the song failed!");
                }
                finally {
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
        return null;
    }

}

這樣我們就完成了Spring Boot的文件下載功能。什么?這樣就搞定了?是的,就是這么簡(jiǎn)單,因?yàn)橹粚?shí)現(xiàn)了文件下載功能。具體的代碼留給讀者好好分析哦~~
??寫完代碼并不是我們的最終目的,我們還差最后一步,那就是測(cè)試!測(cè)試,真的相當(dāng)重要啊~
??運(yùn)行Spring Boot項(xiàng)目后,在瀏覽器中輸入:http://localhost:8080/download , 你會(huì)發(fā)現(xiàn)什么?那就是你的瀏覽器已經(jīng)開始下載E盤music_eg目錄下的某一個(gè)文件啦(前提是E盤中存在music_eg目錄,當(dāng)然里面還得有文件,本例僅作為測(cè)試),如下圖所示:

??我們?cè)偃ゲ榭碋盤music_eg目錄,如下:

??So, 用Spring Boot實(shí)現(xiàn)文件下載功能搞定!歡迎大家交流哦~

注意:本人現(xiàn)已開通兩個(gè)微信公眾號(hào): 因?yàn)镻ython(微信號(hào)為:python_math)以及輕松學(xué)會(huì)Python爬蟲(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注哦~~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/71503.html

相關(guān)文章

  • Spring Boot 2.x基礎(chǔ)教程:快速入門

    摘要:編寫一個(gè)接口創(chuàng)建命名為根據(jù)實(shí)際情況修改創(chuàng)建類,內(nèi)容如下啟動(dòng)主程序,使用等工具發(fā)起請(qǐng)求,可以看到頁(yè)面返回編寫單元測(cè)試用例打開的下的測(cè)試入口類。 簡(jiǎn)介 在您第1次接觸和學(xué)習(xí)Spring框架的時(shí)候,是否因?yàn)槠浞彪s的配置而退卻了?在你第n次使用Spring框架的時(shí)候,是否覺得一堆反復(fù)黏貼的配置有一些厭煩?那么您就不妨來試試使用Spring Boot來讓你更易上手,更簡(jiǎn)單快捷地構(gòu)建Spring應(yīng)...

    tigerZH 評(píng)論0 收藏0
  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡(jiǎn)介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號(hào)作者架構(gòu)師奮斗者掃描主頁(yè)左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡(jiǎn)而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 快速入門(二)

    摘要:響應(yīng)式編程是基于異步和事件驅(qū)動(dòng)的非阻塞程序,只是垂直通過在內(nèi)啟動(dòng)少量線程擴(kuò)展,而不是水平通過集群擴(kuò)展。三特性常用的生產(chǎn)的特性如下響應(yīng)式編程模型適用性內(nèi)嵌容器組件還有對(duì)日志消息測(cè)試及擴(kuò)展等支持。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號(hào):泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 02:WebFlux 快速入門實(shí)踐 文章工程: JDK...

    gaara 評(píng)論0 收藏0
  • SpringBoot+Redis的入門教程

    摘要:歷史文章如何在安裝最新版安裝安裝最新版的入門教程教程內(nèi)容備注本系列開發(fā)工具均為構(gòu)建項(xiàng)目,選擇后面發(fā)現(xiàn)其實(shí)沒有用到三個(gè)基本的依賴。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處本系列教程為HMStrange項(xiàng)目附帶。 歷史文章 如何在VMware12安裝Centos7.6最新版 Centos7.6安裝Java8 Centos7.6安裝MySQL+Redis(最新版) SpringBoot+My...

    dmlllll 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<