SpringBoot文件上傳下載

SpringBoot文件上傳下載

一、新建項目

二、配置maven

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>qiu</groupId>
    <artifactId>fileupload</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>fileupload</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

三、SpringBoot配置文件application.properties

server.port=6555
# 上傳文件總的最大值
spring.servlet.multipart.max-request-size=10MB
# 單個文件的最大值
spring.servlet.multipart.max-file-size=10MB

## jsp
#spring.mvc.view.prefix=/WEB-INF/jsp/
#spring.mvc.view.suffix=.jsp

spring.mvc.static-path-pattern=/**

四、前端頁面

前端頁面放於resources目錄下面的public目錄中,springboot會默認加載這個目錄。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
        <title>文件上傳</title>
        <style>
            form{padding:20px 15px 15px 120px;}
            form{width:500px;height:300px;}
            form fieldset{border:0;align:center;}
            form label{display:inline-block;width:70px;text-align:right}
            input{width:240px;height:30px;}
            #submit{width:200px;height:35px;position:relative;left:70px;}
            #submit:hover{cursor: pointer;background:#D8D8D8;}
            body{width:100%;height:100%;background-image: url(img/1.jpg);}
            #box{position:fixed;left:0px;right:0px;width:706px;margin-left:auto;margin-right:auto;top:100px;}
            #code{width: 70px;height: 40px;font-size:18px;}
            #captcha_img{position:relative;bottom:-15px;}
            a{position:relative;bottom:-10px;}
        </style>
    </head>
    <body >
    <div id="box">
        <form method="post" action="upload" enctype="multipart/form-data" style="background:#cccccc;border-radius:25px;">
            <fieldset>
                <div style="margin-left: 120px;font-size: 30px;font-family:STXingkai;">
                    文件上傳
                </div>
                <!-- <p>
                  <label>用戶名:</label>
                  <input type="text"name="username"placeholder="用戶名"required="required"/>
                </p>
                <p>
                  <label>密碼:</label>
                  <input type="password"name="password"placeholder="密碼"required="required"/>
                </p> -->

                <p>
                    <label>選擇文件:</label>
                    <input type="file" name="file">
                </p>
                <p>
                    <label>保存路徑:</label>
                    <input type="text" name="path" id="path" value="L:\"/>
                </p>
                <p>
                    <input type="submit" value="開始上傳" name="submit" id="submit"/>
                </p>
            </fieldset>
        </form>
    </div>
    </body>
</html>

五、controller

package qiu.fileupload.test;

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 java.io.File;
import java.io.IOException;

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

    @PostMapping("/upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file,@RequestParam("path") String path) {
        if (file.isEmpty()) {
            return "上傳失敗,請選擇文件";
        }
        System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaa");
        String fileName = file.getOriginalFilename();
        String filePath = path;
        System.out.println(filePath);

        File dest = new File(filePath + fileName);

        try {
            file.transferTo(dest);
            return "上傳成功";
        } catch (IOException e) {
        }
        return "上傳失敗!";
    }
}

六、測試

1、瀏覽器中輸入地址:http://localhost:6555/register.html

SpringBoot文件上傳下載

2、選擇“選擇文件”,“開始上傳”

3、到D盤D:\test\test\目錄下面查看

SpringBoot文件上傳下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章