上一節教你們開發了一個簡單的可供瀏覽器,微信小程序訪問的java後臺項目,這一節來給你們講講個人如何使用springboot實現文件上傳的功能,能夠上傳圖片,文檔,視頻,音頻。html
若是你還不知道如何建立一個springboot項目,請查看上一節內容。這裏再也不講解項目的建立流程,而是直接講咱們的技能點了。java
web類庫的引入,前面章節和視頻裏也有講解。 linux
以下圖所示:在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>
複製代碼
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
到這裏咱們就完整的實現了文件的上傳。spring
源碼地址:github.com/qiushi123/s…小程序
視頻講解地址:edu.csdn.net/course/deta…微信小程序
往期回顧瀏覽器