Spring Cloud Feign的檔案上傳實現
在Spring Cloud封裝的Feign中並不直接支援傳檔案,但可以通過引入Feign的擴充套件包來實現,本來就來具體說說如何實現。
服務提供方(接收檔案)
服務提供方的實現比較簡單,就按Spring MVC的正常實現方式即可,比如:
public class Application { public class UploadController { "/uploadFile" |
服務消費方(傳送檔案)
在服務消費方由於會使用Feign客戶端,所以在這裡需要在引入feign對錶單提交的依賴,具體如下:
<dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId> |
定義檔案上傳方的應用主類和FeignClient,假設服務提供方的服務名為eureka-feign-upload-server
public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } } "upload-server", configuration = UploadService.MultipartSupportConfig.class) (value = public interface UploadService { "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) (value = String handleFileUpload(@RequestPart(value = "file") MultipartFile file); class MultipartSupportConfig { public Encoder feignFormEncoder() { return new SpringFormEncoder(); } } } |
在啟動了服務提供方之後,嘗試在服務消費方編寫測試用例來通過上面定義的Feign客戶端來傳檔案,比如:
4j (SpringJUnit4ClassRunner.class) public class UploadTester { private UploadService uploadService; public void testHandleFileUpload() { File file = new File("upload.txt"); DiskFileItem fileItem = (DiskFileItem) new DiskFileItemFactory().createItem("file", MediaType.TEXT_PLAIN_VALUE, true, file.getName()); try (InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream()) { IOUtils.copy(input, os); } catch (Exception e) { throw new IllegalArgumentException("Invalid file: " + e, e); } MultipartFile multi = new CommonsMultipartFile(fileItem); log.info(uploadService.handleFileUpload(multi)); } } |
完整示例:
讀者可以根據喜好選擇下面的兩個倉庫中檢視eureka-feign-upload-server
和eureka-feign-upload-client
兩個專案:
相關推薦
spring-cloud-zuul檔案上傳中文名亂碼解決過程
由於專案中用到了zuul作為閘道器,所有的請求都要經過zuul轉發,因此上傳請求也被代理了。經過辛辛苦苦的敲程式碼,終於完成了功能開發,上傳非中文名的檔案一切都很完美,可是到了中文檔名時,檔案伺服器收到的請求裡面中文名全部變成了 ‘?’ ,我也是有很多疑問了,同
Spring Cloud Feign的檔案上傳實現
在Spring Cloud封裝的Feign中並不直接支援傳檔案,但可以通過引入Feign的擴充套件包來實現,本來就來具體說說如何實現。服務提供方(接收檔案)服務提供方的實現比較簡單,就按Spring MVC的正常實現方式即可,比如:@EnableFeignClients @E
Java架構-Spring mvc+oss儲存+fileupload多檔案上傳實現SSO單點登入模板管理
之前給大家介紹了sso的相關知識點和整合方案,考慮到每個系統所屬行業的不同,這邊針對於不同行業做了一些統一的sso單點登入介面模板,使用fileupload多檔案上傳+OSS阿里雲端儲存方案。 1. 阿里雲oss儲存Utils Java程式碼 2. 阿里雲配
spring mvc檔案上傳實現進度條
檔案上傳應該大部分人都接觸過,一般都是基於commons-fileupload元件來實現,SpringMVC的檔案上傳功能也是在commons-fileupload元件提供的功能上面做了一些包裝功能,使檔案上傳開發更容易方便。 看下上傳效果圖:
Spring 中的檔案上傳與下載控制
先建立根應用上下文配置,WebDemo/src/main/java/com/seliote/webdemo/config/RootContextConfig.java package com.seliote.webdemo.config; import org.springframework.c
Spring mvc uploadifive 檔案上傳實踐(轉自 https //segmentfault com/a/
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
spring boot Tomcat檔案上傳找不到零時資料夾
springboot專案上傳檔案是找不到零時資料夾 1、本身啟動jar包時內建Tomcat沒有建立零時資料夾 2、在zuul閘道器級別沒有建立零時資料夾 處理方案: -Djava.io.tmpdir=/home/tomcat/upload/tmp eg: java -Xms1024m -X
Spring MVC中檔案上傳和下載
檔案上傳 檔案上傳需將表格的提交方式設為"POST",並且將enctype設為"multipart/form-data",以二進位制的方式提交資料。 spring mvc中可通過MultipartResolver監聽每個請求,如有上傳的檔案,則把請求封裝為MultipartH
spring boot之檔案上傳
檔案上傳的路徑可以在application的配置檔案中配置和獲取,當檔案上傳到本地時,此時檔案是不允許直接訪問的。需要在spring boot中新增配置類(配置檔案的路徑是file.root.path=D:/file/)。 @SuppressWarnings("deprec
springcloud中feign檔案上傳、下載
檔案上傳、下載也是實際專案中會遇到的場景,本篇我們介紹下springcloud中如何使用feign進行檔案上傳與下載 。 還是使用feign 進行http的呼叫。 一、Feign檔案上傳 服務提供方java程式碼: /** * 檔案上傳 * @param fil
spring boot 簡單檔案上傳 返回
首先檔案要有存放的地方 在application.yml中配置 spring: servlet: multipart: location: /Users/chenweiqi/IdeaProjects/mq/temp/file controller中接收,儲存檔
spring mvc的檔案上傳操作
第一步:在springmvc中配置multipart型別解析器 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver
Spring MVC 的檔案上傳和下載
“君看一葉舟,出沒風波里” 使用Spring MVC 進行檔案的上傳和下載,除了Spring MVC 的jar包之外,還需用到commons-fileupload-1.2.2.jar、commons-io-2.1.jar兩個包。這裡已給出下載地址:jar包下載地
Spring Test之檔案上傳篇
Spring Test之檔案上傳篇 1、上傳需要的簡單配置 1.1 匯入依賴包,包含檔案上傳、springtest4+和Junit4+包 <dependency> <groupId>org.springframework</groupId&
[原始碼和文件分享]基於WinInet的HTTPS檔案上傳實現
背景 之前寫過基於WinInet的HTTPS檔案下載功能的小程式了,那就順便把HTTPS檔案上傳也一併寫了吧,這樣知識才算是比較完整了。相對於檔案下載來說,檔案上傳過程原理也都差不多,只要注意些區別就好了。 現在,把基於WinInet的HTTPS檔案上傳功能小程式的開發過程分享給大家,方便大
使用Spring Boot搭建檔案上傳服務
一:服務端 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x
基於spring boot ftp檔案上傳
對ftp檔案上傳將行封裝,實現連線的單例模式,完成執行緒安全的改進,ftp檔案上傳下載失敗的重試。application.yml配置檔案ftp: ip: 127.0.0.1 port: 21 username: admin password: admi
Spring MVC 中檔案上傳/刪除 刪除空資料夾方法 + 下載方法
package com.pqs.common.tools; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExce
java web 檔案上傳實現
使用jspsmart完成檔案上傳 用於向伺服器上傳的表單 <%@ page contentType="text/html;charset=UTF-8" language="ja
Thinkphp5+uploadify 檔案上傳實現
初次接觸伺服器端開發,邊學習邊試著做一個OTA後臺伺服器,費了好大勁才實現了檔案上傳和進度條顯示。 遇到幾個問題: 1. 大檔案上傳失敗 2.上傳取消X 符合顯示不出來 3. 不知道如何傳遞變數值給後臺php 記錄下過程。 1. 下載uploadify 程式碼到工程裡,如p