Java客戶端服務(wù)端上傳接收文件實(shí)現(xiàn)詳解
Java客戶端通過(guò)HTTP協(xié)議上傳文件, 服務(wù)端處理客戶端請(qǐng)求, MultipartFile轉(zhuǎn)File, 實(shí)現(xiàn)客戶端上傳文件的存儲(chǔ)
Java環(huán)境: JDK1.8
開(kāi)發(fā)環(huán)境: IDEA
SpringBoot: 2.2.0
Maven: 3.6.3
Java客戶端通過(guò)HTTP協(xié)議上傳文件
// 引入pom依賴, hutool相關(guān)文檔, https://www.hutool.cn/docs/ <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.7</version> </dependency>
HashMap<String, Object> paramMap = new HashMap<>(); //文件上傳只需將參數(shù)中的鍵指定(默認(rèn)file),值設(shè)為文件對(duì)象即可,對(duì)于使用者來(lái)說(shuō),文件上傳與普通表單提交并無(wú)區(qū)別 paramMap.put("file", FileUtil.file("C:\\文件路徑\\文件名稱")); String result = HttpUtil.post("服務(wù)端IP:端口", paramMap);
Java服務(wù)端接收請(qǐng)求并實(shí)現(xiàn)文件的存儲(chǔ)
工具類
public class Utils { public static void saveFile( MultipartFile filecontent){ OutputStream os = null; InputStream inputStream = null; String fileName = null; try { inputStream = filecontent.getInputStream(); fileName = filecontent.getOriginalFilename(); } catch (IOException e) { e.printStackTrace(); } try { String path = "C:\\test\\"; // 2、保存到臨時(shí)文件 // 1K的數(shù)據(jù)緩沖 byte[] bs = new byte[1024]; // 讀取到的數(shù)據(jù)長(zhǎng)度 int len; // 輸出的文件流保存到本地文件 File tempFile = new File(path); if (!tempFile.exists()) { tempFile.mkdirs(); } os = new FileOutputStream(tempFile.getPath() + File.separator + fileName); // 開(kāi)始讀取 while ((len = inputStream.read(bs)) != -1) { os.write(bs, 0, len); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // 完畢,關(guān)閉所有鏈接 try { os.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
Controller類
@Controller public class FileController { @RequestMapping("/") @ResponseBody public String index(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException { Utils.saveFile(file); return "Success"; } }
注意:
文件較大時(shí)spring-boot 服務(wù)端報(bào)上傳文件錯(cuò)誤“spring.servlet.multipart.max-file-size”
可以修改配置文件: application.properties, 添加以下配置..大小自行修改...
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=200MB
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java上傳文件到服務(wù)器指定文件夾實(shí)現(xiàn)過(guò)程圖解
- Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件上傳案例示例代碼
- java基于spring boot本地上傳圖片示例解析
- java eclipse 中文件的上傳和下載示例解析
- Java后端SSM框架圖片上傳功能實(shí)現(xiàn)方法解析
- Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例
- 基于Java寫(xiě)minio客戶端實(shí)現(xiàn)上傳下載文件
- Java如何實(shí)現(xiàn)上傳文件到服務(wù)器指定目錄
- Java程序測(cè)試上傳Maven工程代碼示例解析
相關(guān)文章
springboot 中 inputStream 神秘消失之謎(終破)
這篇文章主要介紹了springboot 中 inputStream 神秘消失之謎,為了能夠把這個(gè)問(wèn)題說(shuō)明,我們首先需要從簡(jiǎn)單的http調(diào)用說(shuō)起,通過(guò)設(shè)置body等一些操作,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧2021-08-08Java學(xué)習(xí)基礎(chǔ)之安裝JDK/配置JDK環(huán)境&IEDA工具安裝
這篇文章主要介紹了Java學(xué)習(xí)基礎(chǔ)系列文章的第一篇,主要內(nèi)容是安裝JDK/配置JDK環(huán)境&IEDA工具安裝的相關(guān)資料,需要的朋友可以參考下2020-02-02Java讀取Excel、docx、pdf和txt等文件萬(wàn)能方法舉例
在Java開(kāi)發(fā)中處理文件是常見(jiàn)需求,本文以實(shí)際代碼示例詳述如何使用ApachePOI庫(kù)及其他工具讀取和寫(xiě)入Excel、Word、PDF等文件,介紹了ApachePOI、ApachePDFBox和EasyExcel等庫(kù)的使用方法,幫助開(kāi)發(fā)者有效讀取不同格式文件,需要的朋友可以參考下2024-09-09ZooKeeper入門教程二在單機(jī)和集群環(huán)境下的安裝搭建及使用
本文是ZooKeeper入門系列教程,涵蓋ZooKeeper的安裝使及單機(jī)集群環(huán)境搭建,通過(guò)實(shí)例和大量圖表,結(jié)合實(shí)戰(zhàn),幫助學(xué)習(xí)者理解和運(yùn)用,有需要的朋友可以借鑒參考下2022-01-01MyBatis Generator的簡(jiǎn)單使用方法示例
這篇文章主要給大家介紹了關(guān)于MyBatis Generator的簡(jiǎn)單使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02java如何在項(xiàng)目中實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能
這篇文章主要介紹了java如何在項(xiàng)目中實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能的相關(guān)資料,EasyExcel是一個(gè)基于Apache?POI開(kāi)發(fā)的開(kāi)源Java庫(kù),用于簡(jiǎn)化Excel文件的讀寫(xiě)操作,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10基于java實(shí)現(xiàn)websocket代碼示例
這篇文章主要介紹了基于java實(shí)現(xiàn)websocket代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析
這篇文章主要介紹了你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Java中的異常處理(try,catch,finally,throw,throws)
本文主要介紹了Java中的異常處理,文章主要介紹的異常處理包括5個(gè)關(guān)鍵字try,catch,finally,throw,throws,更多詳細(xì)內(nèi)容需要的朋友可以參考一下2022-06-06