java入門005~springboot實現單個文件上傳(圖片 文檔 視頻 音頻均可以上傳)

上一節教你們開發了一個簡單的可供瀏覽器,微信小程序訪問的java後臺項目,這一節來給你們講講個人如何使用springboot實現文件上傳的功能,能夠上傳圖片,文檔,視頻,音頻。html

本節知識點

  • 1,springboot項目的搭建
  • 2,圖片,文檔,視頻,音頻的上傳
  • 3,經過網址能夠訪問到咱們的上傳文件

技術

  • 1,jdk8
  • 2,springboot2.1.5
  • 3,開發工具IntelliJ IDEA2019 最新版

若是你還不知道如何建立一個springboot項目,請查看上一節內容。這裏再也不講解項目的建立流程,而是直接講咱們的技能點了。java

一,首先要在咱們的pom.xml裏引入web類庫

web類庫的引入,前面章節和視頻裏也有講解。 linux

二,建立upload.html,實現文件的選擇與上傳

以下圖所示:在resources目錄的static文件下建立upload.html文件。(若是static不存在,就本身建立一個static文件) git

代碼給你們貼出來

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上傳文件到服務器</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="uploadFile" value="請選擇文件">
    <input type="submit" value="上傳">
</form>
</body>
</html>
複製代碼

三,建立UploadController類,用來接收上傳的文件

這裏簡單給你們講解下實現步驟 1,upload.html選擇文件 2,upload.html上傳文件 3,UploadController經過設置@RestController註解,來接收網頁的請求 4,經過MultipartFile和HttpServletRequest拿到上傳的文件和請求信息 5,建立存儲文件的目錄 6,經過uploadFile.transferTo(fileServer); 把上傳的文件存儲到服務器 7,返回一個能夠訪問文件的網址。 完整代碼給你們貼出來

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;

/**
 * Created by qcl on 2019-06-11
 * desc: 文件上傳
 */
@RestController
public class UploadController {

    @PostMapping("/upload")
    public String upload(MultipartFile uploadFile, HttpServletRequest request) {
        /*
         定義文件的存儲路徑,以下,是在linux和mac上定義的文件路徑
        /private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile
         */

        String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");
        File dir = new File(realPath);
        if (!dir.isDirectory()) {//文件目錄不存在,就建立一個
            dir.mkdirs();
        }

        try {
            String filename = uploadFile.getOriginalFilename();
            //服務端保存的文件對象
            File fileServer = new File(dir, filename);
            System.out.println("file文件真實路徑:" + fileServer.getAbsolutePath());
            //2,實現上傳
            uploadFile.transferTo(fileServer);
            String filePath = request.getScheme() + "://" +
                    request.getServerName() + ":"
                    + request.getServerPort()
                    + "/uploadFile/" + filename;
            //3,返回可供訪問的網絡路徑
            return filePath;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "上傳失敗";
    }
}

複製代碼

四,驗證

1,啓動項目,如何啓動前面章節有講,這裏再也不囉嗦。 2,訪問upload.html,輸入下圖所示的網址,便可訪問 github

3,選擇文件
4,點擊上傳,而後就能夠看到上傳後的返回結果
5,咱們能夠直接訪問第4步返回的連接,能夠看到圖片顯示出來了

注意:

若是你上傳的是一個zip壓縮文件,訪問的時候是直接下載文件 web

若是上傳的是一個視頻

大小不能超過1048576 bytes,也就是視頻大小不能超過1.23M.不然會報以下錯誤,這錯誤的解決也很簡單,咱們後面章節會作講解。
來看下一個mp4格式的視頻上傳成功後,訪問視頻資源的效果
能夠看到,咱們訪問的時候,就能夠直接在瀏覽器裏播放這個mp4視頻文件。

到這裏咱們就完整的實現了文件的上傳。spring

源碼地址:github.com/qiushi123/s…小程序

視頻講解地址:edu.csdn.net/course/deta…微信小程序

往期回顧瀏覽器

相關文章
相關標籤/搜索