国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot 如何實現(xiàn)文件上傳和下載

這篇具有很好參考價值的文章主要介紹了SpringBoot 如何實現(xiàn)文件上傳和下載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

當今Web應(yīng)用程序通常需要支持文件上傳和下載功能,Spring Boot提供了簡單且易于使用的方式來實現(xiàn)這些功能。在本篇文章中,我們將介紹Spring Boot如何實現(xiàn)文件上傳和下載,同時提供相應(yīng)的代碼示例。

springboot文件上傳下載,Java 教程,spring boot,servlet,java

文件上傳

Spring Boot提供了Multipart文件上傳的支持。Multipart是HTTP協(xié)議中的一種方式,用于支持文件上傳。下面我們將介紹如何在Spring Boot中實現(xiàn)文件上傳。

依賴

在開始之前,我們需要在pom.xml文件中添加以下依賴:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

此外,如果您希望使用Thymeleaf進行模板渲染,可以添加以下依賴:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

配置

在application.properties文件中添加以下配置:

# 文件上傳的最大值
spring.servlet.multipart.max-file-size=10MB
# 文件請求的最大值
spring.servlet.multipart.max-request-size=10MB
# 臨時文件存儲路徑
spring.servlet.multipart.location=/tmp

Controller

在Spring Boot中實現(xiàn)文件上傳需要編寫一個Controller,其中包含兩個方法,一個用于返回上傳文件的表單頁面,另一個用于實際處理文件上傳。

@Controller
public class FileUploadController {

    @GetMapping("/upload")
    public String uploadForm(Model model) {
        return "upload";
    }

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
        if (file.isEmpty()) {
            redirectAttributes.addFlashAttribute("message", "Please select a file to upload");
            return "redirect:upload";
        }

        try {
            // 保存文件
            byte[] bytes = file.getBytes();
            Path path = Paths.get("/tmp/" + file.getOriginalFilename());
            Files.write(path, bytes);

            redirectAttributes.addFlashAttribute("message", "You successfully uploaded '" + file.getOriginalFilename() + "'");
        } catch (IOException e) {
            e.printStackTrace();
        }

        return "redirect:upload";
    }
}

在上面的代碼中,我們定義了一個GET請求處理方法uploadForm,它返回一個上傳文件的表單頁面。在POST請求處理方法uploadFile中,我們使用@RequestParam注解獲取上傳的文件,然后將其保存到指定的路徑中。如果文件為空,我們將重定向到上傳表單頁面,并顯示錯誤消息。如果文件上傳成功,我們將重定向到上傳表單頁面,并顯示成功消息。

模板

為了使上傳表單頁面顯示在瀏覽器中,我們需要創(chuàng)建一個Thymeleaf模板文件upload.html,其中包含上傳表單頁面的HTML代碼。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>File Upload</title>
</head>
<body>
    <div th:if="${message}" class="alert alert-success" th:text="${message}"></div>
    <form method="post" enctype="multipart/form-data" th:action="@{/upload}">
        <div class="form-group">
            <label for="file">Select a file to upload:</label>
            <input type="file" id="file" name="file">
        </div>
        <button type="submit" class="btn btn-primary">Upload</button>
    </form>
</body>
</html>

在上面的代碼中,我們使用Thymeleaf的if語句和text屬性顯示上傳成功或失敗的消息。我們還使用Thymeleaf的action屬性指定表單提交的URL,enctype屬性設(shè)置表單的編碼類型為multipart/form-data,這是文件上傳時必須使用的編碼類型。

運行

現(xiàn)在我們已經(jīng)完成了文件上傳的代碼和模板,我們可以運行Spring Boot應(yīng)用程序,并在瀏覽器中訪問/upload路徑,即可看到上傳表單頁面。選擇要上傳的文件并點擊“上傳”按鈕,文件將被保存到指定的路徑中。

文件下載

Spring Boot提供了簡單的方式來實現(xiàn)文件下載。下面我們將介紹如何在Spring Boot中實現(xiàn)文件下載。

Controller

與文件上傳類似,我們需要編寫一個Controller來處理文件下載請求。在Controller中,我們可以使用ResponseEntity來將文件內(nèi)容發(fā)送到瀏覽器。

@Controller
public class FileDownloadController {

    @GetMapping("/download")
    public ResponseEntity<Resource> downloadFile() throws IOException {
        Path path = Paths.get("/tmp/file.txt");
        Resource resource = new InputStreamResource(Files.newInputStream(path));

        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");

        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(Files.size(path))
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(resource### 模板

為了使文件下載工作,我們需要在瀏覽器中添加一個鏈接或按鈕,該鏈接或按鈕將觸發(fā)文件下載。我們可以將該鏈接或按鈕包含在一個HTML文件中。下面是一個使用Thymeleaf的HTML文件示例:

```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>File Download</title>
</head>
<body>
    <a th:href="@{/download}" class="btn btn-primary">Download File</a>
</body>
</html>

在上面的代碼中,我們使用Thymeleaf的href屬性指定文件下載的URL,這里指向/download。

運行

現(xiàn)在我們已經(jīng)完成了文件下載的代碼和模板,我們可以運行Spring Boot應(yīng)用程序,并在瀏覽器中訪問/download路徑,即可開始文件下載。點擊鏈接或按鈕,瀏覽器將下載文件并將其保存到本地磁盤中。

總結(jié)

在本文中,我們介紹了Spring Boot如何實現(xiàn)文件上傳和下載,包括依賴、配置、Controller和模板的編寫。通過本文,您應(yīng)該能夠了解文件上傳和下載在Spring Boot中的實現(xiàn)方式,并可以使用相應(yīng)的代碼示例進行實踐。Spring Boot提供了簡單且易于使用的方式來實現(xiàn)文件上傳和下載,這對于許多Web應(yīng)用程序來說是非常重要的功能。在實現(xiàn)文件上傳和下載時,需要注意安全性和文件大小的限制,并根據(jù)實際需求進行相應(yīng)的配置。文章來源地址http://www.zghlxwxcb.cn/news/detail-607731.html

到了這里,關(guān)于SpringBoot 如何實現(xiàn)文件上傳和下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Springboot + MySQL + html 實現(xiàn)文件的上傳、存儲、下載、刪除

    Springboot + MySQL + html 實現(xiàn)文件的上傳、存儲、下載、刪除

    實現(xiàn)步驟及效果呈現(xiàn)如下: 1.創(chuàng)建數(shù)據(jù)庫表: 表名:file_test 存儲后的數(shù)據(jù): 2.創(chuàng)建數(shù)據(jù)庫表對應(yīng)映射的實體類: import com.baomidou.mybatisplus.annotation.IdType ; import com.baomidou.mybatisplus.annotation. TableField ; import com.baomidou.mybatisplus.annotation. TableId ; import com.baomidou.mybatisplus.annotation. Tab

    2024年04月29日
    瀏覽(27)
  • SpringBoot實現(xiàn)文件上傳和下載筆記分享(提供Gitee源碼)

    前言:這邊匯總了一下目前SpringBoot項目當中常見文件上傳和下載的功能,一共三種常見的下載方式和一種上傳方式,特此做一個筆記分享。 目錄 一、pom依賴 二、yml配置文件 三、文件下載

    2024年02月11日
    瀏覽(25)
  • 一張圖帶你學(xué)會入門級別的SpringBoot實現(xiàn)文件上傳、下載功能

    一張圖帶你學(xué)會入門級別的SpringBoot實現(xiàn)文件上傳、下載功能

    ?????作者名稱:DaenCode ??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:SpringBoot實戰(zhàn) 標題 一文帶你學(xué)會使用SpringBoot+Avue實現(xiàn)短信通知功能(含重要文件代碼) 一張思維導(dǎo)圖帶你學(xué)會Springboot創(chuàng)

    2024年02月12日
    瀏覽(117)
  • 基于SpringBoot實現(xiàn)文件上傳和下載(詳細講解And附完整代碼)

    目錄 一、基于SpringBoot實現(xiàn)文件上傳和下載基于理論 二、詳細操作步驟 文件上傳步驟: 文件下載步驟: 三、前后端交互原理解釋? 四、小結(jié)? 博主介紹:?專注于前后端領(lǐng)域開發(fā)的優(yōu)質(zhì)創(chuàng)作者、秉著互聯(lián)網(wǎng)精神開源貢獻精神,答疑解惑、堅持優(yōu)質(zhì)作品共享。本人是掘金/騰訊

    2024年04月11日
    瀏覽(115)
  • 【java】java實現(xiàn)大文件的分片上傳與下載(springboot+vue3)

    【java】java實現(xiàn)大文件的分片上傳與下載(springboot+vue3)

    源碼: https://gitee.com/gaode-8/big-file-upload 演示視頻 https://www.bilibili.com/video/BV1CA411f7np/?vd_source=1fe29350b37642fa583f709b9ae44b35 對于超大文件上傳我們可能遇到以下問題 ? 大文件直接上傳,占用過多內(nèi)存,可能導(dǎo)致內(nèi)存溢出甚至系統(tǒng)崩潰 ? 受網(wǎng)絡(luò)環(huán)境影響,可能導(dǎo)致傳輸中斷,只能重

    2024年02月02日
    瀏覽(29)
  • SpringBoot+vue文件上傳&下載&預(yù)覽&大文件分片上傳&文件上傳進度

    SpringBoot+vue文件上傳&下載&預(yù)覽&大文件分片上傳&文件上傳進度

    SpringBoot+vue 大文件分片下載 Blob File spark-md5根據(jù)文件內(nèi)容生成hash 大文件分片上傳(批量并發(fā),手動上傳)vue組件封裝-form組件 vue上傳大文件/視頻前后端(java)代碼 springboot+vue自定義上傳圖片及視頻 SpringBoot + VUE實現(xiàn)前臺上傳文件獲取實時進度( 使用commons-fileupload設(shè)置上傳監(jiān)聽

    2024年02月05日
    瀏覽(68)
  • SpringBoot整合hdfs,實現(xiàn)文件上傳下載刪除與批量刪除,以及vue前端發(fā)送請求,實現(xiàn)前后端交互功能;

    SpringBoot整合hdfs,實現(xiàn)文件上傳下載刪除與批量刪除,以及vue前端發(fā)送請求,實現(xiàn)前后端交互功能;

    部分工具類代碼參考文章:https://blog.csdn.net/qq_27242695/article/details/119683823 前端實現(xiàn)效果 HDFSController HDFS FileInterface (文件接口) HDFS FileImplService (文件接口實現(xiàn)類) HDFSConfig(從yaml讀取文件) HDFSUTils 前端vue代碼:

    2024年02月16日
    瀏覽(130)
  • 【springboot項目開發(fā)】文件上傳與下載

    【springboot項目開發(fā)】文件上傳與下載

    目錄 總體介紹 文件上傳 介紹 文件上傳的前端需求 文件上傳的前端代碼 文件上傳的后端需求 文件上傳的后端代碼 文件下載 介紹 前端需求 前端代碼 后端需求 后端代碼 文件的上傳和下載功能,是項目開發(fā)過程中比較常見的業(yè)務(wù)需求,我們在客戶端被展現(xiàn)的視覺效果通過如

    2024年02月08日
    瀏覽(92)
  • SpringBoot整合minio,文件的上傳下載,批量獲取

    Minio是GlusterFS創(chuàng)始人之一Anand Babu Periasamy發(fā)布新的開源項目?;贏pache License v2.0開源協(xié)議的對象存儲項目,采用Golang實現(xiàn),客戶端支Java,Python,Javacript, Golang語言。 其設(shè)計的主要目標是作為私有云對象存儲的標準方案。主要用于存儲海量的圖片,視頻,文檔等。非常適合于存儲

    2024年02月12日
    瀏覽(30)
  • SpringBoot+ruoyi框架圖片上傳和文件下載

    SpringBoot+ruoyi框架圖片上傳和文件下載

    第一次接觸ruoyi框架,碰到文件上傳和下載問題,今天來總結(jié)一下。 使用若依框架文件上傳下載首先配置文件路徑要配好。 application.yml若依配置 首先是文件下載,在若依框架下載上傳文件工具已經(jīng)寫好了 頁面: 前端方法:` 后端通用方法: RuoYiConfig.getDownloadPath()如果和你的路

    2024年02月09日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包