java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现

在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现。需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六

服务提供方(接收文件)

服务提供方的实现比较简单,就按Spring MVC的正常实现方式即可,比如:

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {@RestControllerpublic class UploadController {@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) {return file.getName();}}public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);}}
复制代码

服务消费方(发送文件)

在服务消费方由于会使用Feign客户端,所以在这里需要在引入feign对表单提交的依赖,具体如下:

<dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form</artifactId><version>3.0.3</version>
</dependency>
<dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form-spring</artifactId><version>3.0.3</version>
</dependency>
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version>
</dependency>
复制代码

定义文件上传方的应用主类和FeignClient,假设服务提供方的服务名为 eureka-feign-upload-server

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);}}@FeignClient(value = "upload-server", configuration = UploadService.MultipartSupportConfig.class)
public interface UploadService {@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)String handleFileUpload(@RequestPart(value = "file") MultipartFile file);@Configurationclass MultipartSupportConfig {@Beanpublic Encoder feignFormEncoder() {return new SpringFormEncoder();}}}
复制代码

在启动了服务提供方之后,尝试在服务消费方编写测试用例来通过上面定义的Feign客户端来传文件,比如:

@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UploadTester {@Autowiredprivate UploadService uploadService;@Test@SneakyThrowspublic 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));}}
复制代码

java B2B2C 仿淘宝电子商城系统

转载于:https://juejin.im/post/5cb920d0e51d456e442ff331

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021计算机三级网络技术教程,全国计算机等级考试三级教程——网络技术(2021年版)...

前辅文第一单元 网络规划与设计第1章 网络系统结构与设计的基本原则1.1 基础知识1.2 实训任务习题第2章 中小型网络系统总体规划与设计方法2.1 基础知识2.2 实训任务习题第3章 IP地址规划设计技术3.1 基础知识3.2 实训任务习题第4章 路由设计基础4.1 基础知识4.2 实训任务习题第…

subline Text3 插件安装

--没有解决&#xff0c;换了vscode 安装Package Control 这是必须的步骤&#xff0c;安装任何插件之前需要安装这个 自动安装的方法最方便&#xff0c;只需要在控制台&#xff08;不是win的控制台&#xff0c;而是subline 的&#xff09;里粘贴一段代码就好&#xff0c;但是由…

大学计算机基础书本里的毕业论文源稿,计算机基础毕业论文范文

计算机基础毕业论文范文导语&#xff1a;关于大学计算机基础的教学&#xff0c;需要不断探索与实践&#xff0c;实现更好的教学。下面是小编带来的计算机基础毕业论文&#xff0c;欢迎阅读与参考。论文&#xff1a;大学计算机基础教学的探索与实践摘要&#xff1a;大学计算机基…

p批处理替换目录下文本中的字符串

echo offrem 进入批处理文件所在的路径 cd C:\Users\zxh\Desktop\123echo ***** Replace "123" as "abc" ***** rem 定义要替换的新旧字符串 set strOld123 set strNewabcrem 定义变量修改本地化延期 setlocal enabledelayedexpansionrem 循环取出要处理的…

计算机技术基础 VB 答案,《计算机技术基础(VB)》武汉理工大学20春作业一

计算机技术基础(VB)_作业一1.[判断题] 写在一行上的多条语句&#xff0c;应以逗号作为分隔符。奥鹏作业答案可以联系QQ 761296021A.正确B.错误正确答案:——B——2.[判断题] 滚动条的最小值、最大值、最小变动值、最大变动值属性均可自行设计。A.正确B.错误正确答案:——A——3…

公务员计算机考试题库,公务员考试题库

2019年上半年&#xff0c;我国服务进出口总额达到26124.6亿元&#xff0c;同比增长2.6%。其中&#xff0c;出口总额9333.7亿元&#xff0c;同比增长9.0%&#xff1b;进口总额16790.8亿元&#xff0c;同比下降0.6%。服务进出口总额占对外贸易总额的比重达到15.1%&#xff0c;比2…

Spring MVC 实现Excel的导入导出功能(2:Excel的导入优化和Excel的导出)

Excel的导入V2优化版 有些时候文件上传这一步骤由前端来处理&#xff0c;只将上传后的 URL 传输给后端&#xff08;可以参考上一文中的图片上传功能&#xff09;&#xff0c;也就是导入请求中并不会直接处理 MultipartFile 对象&#xff0c;而是通过文件 URL 将其下载&#xff…

计算机系统应用属于ei,2018年度中心成员发表论文清单(SCI、EI收录)

序号论文名称作者发表时间发表刊物名及ISSN号论文类别(SCI(请写明几区)、EI、AB类刊物、CSCD)1Power Allocation Study for Non-Orthogonal Multiple Access Networks With Multicast-Unicast TransmissionZheng Yang , Member, IEEE, Jamal Ahmed Hussein , Peng Xu , Member,…

ts基础总结

ts有什么用 类型检查, 拥抱es6&#xff0c;支持部分的esNext草案&#xff0c;直接编译到原生js、引入新的语法糖 为什么用ts TypeScript的设计目的应该是解决JavaScript的“痛点”&#xff1a;弱类型和没有命名空间&#xff0c;导致很难模块化&#xff0c;不适合开发大型程序。…

CentOS7启用SELinux和Firewall修改ssh端口号

基本信息 CentOS :CentOS Linux release 7.6.1810 (Core)SELinux:enforcedFirewall:enforcing生成ssh密钥对 生成密钥对 ssh-keygen -t rsa -b 2048 #默认存放的位置是/home/user/.ssh&#xff0c;使用的是公钥id_rsa.pub从服务器中将私钥复制到本机或者使用本地生成的密钥对&a…

华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...

随着消费者对健康生活的日益关注&#xff0c;随之而来的是智能可穿戴设备的蓬勃发展。一个手环&#xff0c;一个智能手表&#xff0c;都可以为消费者提供诸如心率&#xff0c;步数相关的数据统计。而更进阶的设备&#xff0c;则能为用户提供系统的运动解决方案以及监控人体健康…

Flutter 使用动画播放一组图片

请支持原文&#xff1a;tryenough.com/images-anim… 效果如下图&#xff1a; 代码 import package:flutter/material.dart; import package:sprintf/sprintf.dart; //这个是一个拼接字符串的flutter库&#xff0c;主要是为了使用方便&#xff0c;你可以选择不使用&#xff0c…

软件测试都有哪些证书,软件测试都有哪些证书呀?有用吗?

OYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学…

超低频测试信号产生电路软件流程图,一种0_20Hz超低频信号发生器的设计与实现...

。。第22卷第4期增刊           仪 器 仪 表 学 报             2001年8月一种0&#xff5e;20Hz超低频信号发生器的设计与实现马彦恒 郭 利 于久恩 (军械工程学院 石家庄 050003)摘要 本文介绍了一种采用了主—从式双CPU结构,频率和幅度都…

datastage 使用小结

转载于:https://www.cnblogs.com/Guhan-xue/p/10758663.html

Teams 的逻辑架构与语音解决方案 - Official Posters Download

意外收获了前几天&#xff08;0420&#xff09;刚刚更新出来的Teams架构海报&#xff0c;分享给大家下载 Microsoft Teams IT architecture and telephony solutions postershttps://docs.microsoft.com/en-us/microsoftteams/teams-architecture-solutions-posters 接下来跟大…

ug不能自动启动服务器,没有足够的权限启动系统服务解决方法

没有足够的权限启动系统服务解决方法UG的安装要注意两个问题&#xff0c;一个是安装路径不能有中文(包括ug文件存储路径也不能含有中文),二是许可证的安装&#xff0c;win7装ug问题多数出在“许可证”的安装过程&#xff0c;你的那个报警是&#xff1a;就是说你把UGII_TMP_DIR设…

css直接子元素怎么用,CSS 子元素选择器使用实例

与后代选择器相比&#xff0c;子元素选择器只能选择作为某元素子元素的元素。子元素选择器使用大于号">"做为连接符。如果您不希望选择任意的后代元素&#xff0c;而是希望缩小范围&#xff0c;只选择某个元素的子元素&#xff0c;请使用子元素选择器子元素选择器…

C# Collection was modified;enumeration operation may not execute

一、问题描述 在做 数组、列表、集合遍历时&#xff0c;可能我们会遇见这个问题。Collection was modified;enumeration operation may not execute &#xff0c;翻译的中文意思&#xff1a;集合已修改&#xff1b;枚举操作可能无法执行。 二、解决方案 就是在遍历时&#xff0…

xp系统安装金蝶k3服务器配置,XP单机版安装金蝶K3的13.1版本号,金蝶K3Wise安装步骤,安装成功...

要注意先安装IIS。再安装VS2008。我们会常常在控制面板里找不到“应用程序server”这个项目。我们须要依照以下的步骤来操作就会Ok。1.下载IIS6&#xff0c;放置到D盘根文件夹。2.在执行里输入&#xff1a;c:\Windows\inf\sysoc.inf即打开找到 [Components]段。加入&#xff1a…