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

Spring Boot文件上傳最新解決方案

 更新時(shí)間:2021年07月15日 16:55:38   作者:gnail_oug  
本文給大家分享Spring Boot文件上傳功能的示例代碼,包括單文件上傳示例和多文件上傳,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一、創(chuàng)建一個(gè)簡(jiǎn)單的包含WEB依賴(lài)的SpringBoot項(xiàng)目

pom.xml內(nèi)容:

<!-- Spring Boot web啟動(dòng)器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- jsp -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <!--<scope>provided</scope>-->
</dependency>

二、配置文件上傳的文件大小限制

application.properties配置文件添加:

# 上傳文件總的最大值
spring.servlet.multipart.max-request-size=10MB
# 單個(gè)文件的最大值
spring.servlet.multipart.max-file-size=10MB

## jsp
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
  • spring.servlet.multipart.max-file-size限制單個(gè)文件的最大值
  • spring.servlet.multipart.max-request-size限制上傳的多個(gè)文件的總大小

 三、單文件上傳示例

1、創(chuàng)建Controller控制類(lèi),內(nèi)容如下:

package com.songguoliang.springboot.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * @Description
 * @Author sgl
 * @Date 2018-05-15 14:04
 */
@Controller
public class UploadController {
    private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class);

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

    @PostMapping("/upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return "上傳失敗,請(qǐng)選擇文件";
        }

        String fileName = file.getOriginalFilename();
        String filePath = "/Users/itinypocket/workspace/temp/";
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("上傳成功");
            return "上傳成功";
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
        }
        return "上傳失??!";
    }

    
}

2、創(chuàng)建upload.jsp文件

只有一個(gè)表單,選擇文件,form的enctypemultipart/form-data:

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <title>單文件上傳</title>
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

3、通過(guò)springboot插件啟動(dòng)項(xiàng)目,瀏覽器輸入http://localhost:8080/upload

這里寫(xiě)圖片描述

選擇文件點(diǎn)擊提交按鈕返回成功信息,我們上傳的文件保存在/Users/itinypocket/workspace/temp路徑下:

這里寫(xiě)圖片描述

四、多文件上傳

1、創(chuàng)建多文件上傳的jsp頁(yè)面,多文件上傳頁(yè)面只是比單文件上傳多了file選擇的input而已,multiUpload.jsp內(nèi)容如下:

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <title>多文件上傳</title>
</head>
<body>
<form method="post" action="/multiUpload" enctype="multipart/form-data">
    <input type="file" name="file"><br>
    <input type="file" name="file"><br>
    <input type="file" name="file"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

2、在UploadController里添加多文件上傳的方法

@GetMapping("/multiUpload")
public String multiUpload() {
    return "multiUpload";
}

@PostMapping("/multiUpload")
@ResponseBody
public String multiUpload(HttpServletRequest request) {
    List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
    String filePath = "/Users/itinypocket/workspace/temp/";
    for (int i = 0; i < files.size(); i++) {
        MultipartFile file = files.get(i);
        if (file.isEmpty()) {
            return "上傳第" + (i++) + "個(gè)文件失敗";
        }
        String fileName = file.getOriginalFilename();

        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("第" + (i + 1) + "個(gè)文件上傳成功");
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
            return "上傳第" + (i++) + "個(gè)文件失敗";
        }
    }

    return "上傳成功";

}

3、重啟服務(wù),瀏覽器輸入http://localhost:8080/multiUpload:

這里寫(xiě)圖片描述

4、然后選擇要上傳的文件,點(diǎn)擊提交按鈕,得到成功信息:

這里寫(xiě)圖片描述

我們選擇的三個(gè)文件已被成功上傳到/Users/itinypocket/workspace/temp路徑下。


分享一個(gè)零基礎(chǔ),通俗易懂,而且非常風(fēng)趣幽默的人工智能教程(如不能直接點(diǎn)擊訪問(wèn),請(qǐng)以“右鍵”->“在新標(biāo)簽頁(yè)中打開(kāi)鏈接”方式打開(kāi))網(wǎng)站,網(wǎng)址:https://www.cbedai.net/gnailoug/

源碼:
github
碼云

到此這篇關(guān)于Spring Boot文件上傳最新解決方案的文章就介紹到這了,更多相關(guān)Spring Boot文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java全面解析IO流相關(guān)知識(shí)

    Java全面解析IO流相關(guān)知識(shí)

    這篇文章主要介紹了IO流相關(guān)知識(shí),包括File,字節(jié)流,字符流,特殊操作流(標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流,對(duì)象序列化與反序列化,properties與IO流結(jié)合)相關(guān)知識(shí)的總結(jié)
    2021-08-08
  • idea如何生成springboot單元測(cè)試用例

    idea如何生成springboot單元測(cè)試用例

    這篇文章主要介紹了idea生成springboot單元測(cè)試用例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Spring interceptor攔截器配置及用法解析

    Spring interceptor攔截器配置及用法解析

    這篇文章主要介紹了Spring interceptor攔截器配置及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 關(guān)于Jmeter接口測(cè)試實(shí)戰(zhàn)-Cookies

    關(guān)于Jmeter接口測(cè)試實(shí)戰(zhàn)-Cookies

    這篇文章主要介紹了關(guān)于Jmeter接口測(cè)試實(shí)戰(zhàn)-Cookies問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring?Boot?實(shí)現(xiàn)字段唯一校驗(yàn)功能(實(shí)例代碼)

    Spring?Boot?實(shí)現(xiàn)字段唯一校驗(yàn)功能(實(shí)例代碼)

    這篇文章主要介紹了Spring?Boot?實(shí)現(xiàn)字段唯一校驗(yàn),實(shí)現(xiàn)代碼很簡(jiǎn)單,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • java集合之CopyOnWriteArrayList源碼解析

    java集合之CopyOnWriteArrayList源碼解析

    這篇文章主要介紹了java集合之CopyOnWriteArrayList源碼解析,容器array是volatile修飾的,即set和get方法都是線程安全的,整個(gè)添加過(guò)程上了鎖,所以整體是通過(guò)volatile和lock來(lái)保證的線程安全,需要的朋友可以參考下
    2023-12-12
  • java通過(guò)Idea遠(yuǎn)程一鍵部署springboot到Docker詳解

    java通過(guò)Idea遠(yuǎn)程一鍵部署springboot到Docker詳解

    這篇文章主要介紹了java通過(guò)Idea遠(yuǎn)程一鍵部署springboot到Docker詳解,Idea是Java開(kāi)發(fā)利器,springboot是Java生態(tài)中最流行的微服務(wù)框架,docker是時(shí)下最火的容器技術(shù),那么它們結(jié)合在一起會(huì)產(chǎn)生什么化學(xué)反應(yīng)呢?的相關(guān)資料
    2019-06-06
  • Java中JWT的使用的詳細(xì)教程

    Java中JWT的使用的詳細(xì)教程

    JWT的本質(zhì)就是一個(gè)字符串,它是將用戶(hù)信息保存到一個(gè)Json字符串中,然后進(jìn)行編碼后得到一個(gè)JWT token,并且這個(gè)JWT token帶有簽名信息,接收后可以校驗(yàn)是否被篡改,所以可以用于在各方之間安全地將信息作為Json對(duì)象傳輸,本文介紹了Java中JWT的使用,需要的朋友可以參考下
    2023-02-02
  • Java常用工具類(lèi)庫(kù)——Hutool的使用簡(jiǎn)介

    Java常用工具類(lèi)庫(kù)——Hutool的使用簡(jiǎn)介

    這篇文章主要介紹了Java常用工具類(lèi)庫(kù)——Hutool的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • 8種常見(jiàn)的Java不規(guī)范代碼

    8種常見(jiàn)的Java不規(guī)范代碼

    本文主要介紹了8種常見(jiàn)的Java不規(guī)范代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01

最新評(píng)論