1. 程式人生 > >spring boot檔案的上傳下載

spring boot檔案的上傳下載

spring boot 引入”約定大於配置“的概念,實現自動配置,節約了開發人員的開發成本,並且憑藉其微服務架構的方式,一出來就佔據大片開發人員的芳心。然而對於剛開始使用它的人來說是比較不習慣的,因為大部分的配置從開發人員可見變成了相對透明瞭,要想進一步熟悉還需要關注原始碼,對於spring boot 新人來說使用是比較吃力的。

為了記錄自己對spring boot的學習,同時也可以對正在學習spring boot的同學提供一個demo。特寫下這篇比較粗獷的博文。

spring boot搭建就不說了,詳情請看spring官網spring boot quickly start篇。

廢話不多說,先看檔案上傳:

對於檔案上傳使用springMVC的同學應該知道MultipartHttpServletRequest這個玩意,在spring boot中也是用它。首先我們看demo頁面。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/testUpload" method="POST" enctype="multipart/form-data">
	<input type="file" name="file"/>
	<input type="submit" />
</form>
<a href="/testDownload">下載</a>
</body>
</html>

前端頁面部分和springMVC完全一樣(ps:本來spring boot就不是新的方案解決框架,只是改變了框架的使用方式而已)

後端程式碼也很簡單,按上面說的,使用MultipartHttpServletRequest來處理上傳請求,然後將接收到的檔案以流的形式寫入到伺服器檔案中。

@RequestMapping(value="/testUpload",method=RequestMethod.POST)
	public void testUploadFile(HttpServletRequest req,MultipartHttpServletRequest multiReq) throws IOException{
		FileOutputStream fos=new FileOutputStream(new File("F://test//src//file//upload.jpg"));
		FileInputStream fs=(FileInputStream) multiReq.getFile("file").getInputStream();
		byte[] buffer=new byte[1024];
		int len=0;
		while((len=fs.read(buffer))!=-1){
			fos.write(buffer, 0, len);
		}
		fos.close();
		fs.close();
	}

同理對於檔案下載同樣簡單,只需要將檔案寫到輸出流裡:

@RequestMapping(value="/testDownload",method=RequestMethod.GET)
	public void testDownload(HttpServletResponse res) throws IOException{
		String fileName="upload.jpg";
		res.setHeader("content-type", "application/octet-stream");
		res.setContentType("application/octet-stream");
		res.setHeader("Content-Disposition", "attachment;filename=CourseResource.jpg");
		File file=new File("F://BaiduYunDownload//testRedis//src//file//upload.jpg");
		
		FileOutputStream fos=new FileOutputStream(file);
	
		res.setContentLengthLong(file.length());
		fos.close();
	}


在這個過程中完全不需要任何配置,不過如果你要設定上傳檔案的大小設定,那麼你可以再application.properties中分別用

multipart.maxFileSize,multipart.maxRequestSize,這兩個屬性。

相關推薦

Spring Boot——檔案下載

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

Spring Boot 檔案下載

前言:以前的專案中檔案上傳下載會寫大量程式碼來實現,但是在Spring Boot中,簡化了大量程式碼,上傳只需要2行程式碼即可 package com.demo.controller; import com.demo.model.FileInfo; import org.

Spring Boot 檔案下載

一、上傳檔案 @RequestMapping(value="/upfile", method = RequestMethod.POST) public ResultVo uploadFile(@Req

從.Net到Java學習第十篇——Spring Boot檔案下載

圖片上傳 Spring Boot中的檔案上傳就是Spring MVC中的檔案上傳,將其整合進來了。 在模板目錄建立一個新的頁面 profile/uploadPage.html <!DOCTYPE html> <html xmlns:th="http://www.thymel

Spring Boot檔案

spring boot 2.0.5 要實現檔案上傳並直接訪問(檢視/下載) 配置靜態檔案路徑 application.properties uploadPath=/opt/data1/uploads/ ## 上傳路徑設定為靜態資源路徑,可以通過http直接訪問,

Spring Boot -- 檔案

Spring Boot -- 檔案上傳 一:檔案上傳 1. pom.xml 2. application.properties 3. Controller 4.測試 二:熱部署 spring-boot

spring boot 檔案配置檔案

spring:   thymeleaf.cache : false   messages.basename : static/message/messages   http:      multipart:     &n

spring boot 檔案 最基礎的

首先:在控制層 controller 建 FileUploadController 程式碼: package com.example.springdemo.controller; import org.springframework.stereotype.Contro

Spring boot 檔案commons-fileupload

錯誤返回: Required request part 'file' is not present 請檢查你是否引入了這個jar包 自帶了upload files的配置 1.如果沒有 上傳檔案時需要引入並在webMvc配置 <!-- fileup

Spring boot檔案報錯: The temporary upload location is not valid

最近在做Excel匯入時,一次偶然的測試發現bug報錯如下: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is

Spring Boot教程(十三):Spring Boot檔案

一、建立一個簡單的包含WEB依賴的SpringBoot專案 pom.xml內容: <!-- Spring Boot web啟動器 --> <dependency> <groupId>org.springframe

SpringBoot:spring boot檔案【多檔案

原文轉自:http://www.vxzsk.com/638.html 檔案上傳主要分以下幾個步驟: (1)新建maven java project; (2)在pom.xml加入相應依賴; (3)新建一個表單頁面(這裡使用thymleaf); (4

詳細全面的Spring Boot檔案

最近再看Spring Boot 就想做一個檔案上傳的url。 如圖: 檔案目錄如下: 在這裡 為什麼不把檔案上傳到resources裡,因為上傳到這裡 必須重新啟專案,才能生效,所以 新建了webapp,像web應用一樣,上傳到這裡。完美解決這個問題。

Spring boot檔案blocked a frame with origin "http://xxx" from accessing a cross-origin frame.

spring boot 上傳檔案,頁面彈出提示:blocked a frame with origin “http://localhost:8080” from accessing a cross-origin frame. 在上傳檔案的過程中,前端報了這

29. Spring boot 檔案(多檔案)【從零開始學Spring Boot

【視訊&交流平臺】 http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=40000000

Spring boot 檔案(多檔案)【從零開始學Spring Boot

檔案上傳主要分以下幾個步驟: (1)新建maven java project; (2)在pom.xml加入相應依賴; (3)新建一個表單頁面(這裡使用thymeleaf); (4)編寫controller; (5)測試; (6)對上傳的檔案做一些限制; (7)多檔案上傳

spring boot實現檔案下載以及多檔案

首先是很簡單的介面,在resource/static下建立檔案file.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymel

spring實現檔案下載 完整方案

1. 簡介 提供基於spring實現檔案(筆記附件)的上傳和下載的完整方案。方案將檔案上傳,並將檔名稱作為欄位與關聯的筆記繫結在一起,更新筆記在資料庫中的記錄。顯示筆記時,根據筆記所繫結的檔名生成下載

spring 檔案下載介面

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.F

[Spring Boot] Spring Boot MultipartFile檔案

Spring Boot 上傳檔案程式碼 Spring Boot 使用MultipartFile來完成檔案上傳 @ResponseBody @RequestMapping(value = "/put") public Boolean putFi