服务端接口代码如下:

 /**
* 上传数据+实体信息
*/
@RequestMapping("/upload")
public String doctorAnalysis(HttpServletRequest request, @RequestParam(value = "userinfo") String param, @RequestParam(value = "file") MultipartFile file) {
logger.info("userinfo json => {}", param);
logger.info("上传成功{}", file.getOriginalFilename());
File saveFile = new File("D:\\"+file.getOriginalFilename());
if (!saveFile.exists()) {
saveFile.mkdirs();
}
try {
file.transferTo(saveFile);
} catch (IOException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
}
return "上传成功";
}

PostMan 如下

OpenFeign

@FeignClient(name = "vipsoft", url = "${api.url}")
public interface ICallbackFeignService {
/**
* 上传文件
*
* 注意: 使用openfeign传递参数含有文件类型时必须指定 consumes = MediaType.MULTIPART_FORM_DATA_VALUE
*
* @param param 需要将对象转成JSON,如果直接传对象出去,将会变成 Key Value的形式
* @return
*/
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String upload(@RequestPart("result") String param, @RequestPart("file") MultipartFile file); }
package com.vipsoft.web;

import com.vipsoft.web.rpc.ICallbackFeignService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile; import java.io.File;
import java.io.FileInputStream; @SpringBootTest
public class AppCallbackTest { @Autowired
ICallbackFeignService appCallbackFeignService; @Test
void Upload() throws Exception { File file = new File("D:\\Users\\Desktop\\fanye.mp4");
//这里的第一个参数值 file 是对应上面feign的文件注解中的@RequestPar中的name。一定要对应上
MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "application/octet-stream;charset=utf-8", new FileInputStream(file));
UserInfo param = new UserInfo();
param.setUserName("张三");
param.setAge(40);
appCallbackFeignService.upload(multipartFile);
}
}

OpenFeign FormData的更多相关文章

  1. SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法(2)

    书接上文. 上文中描述了如何在 SpringCloud+Feign环境下上传文件与form-data同时存在的解决办法,实践证明基本可行,但却会引入其他问题. 主要导致的后果是: 1. 无法与普通Fe ...

  2. Java | 使用OpenFeign管理多个第三方服务调用

    背景 最近开发了一个统一调度类的项目,需要依赖多个第三方服务,这些服务都提供了HTTP接口供我调用. 服务多.接口多,如何进行第三方服务管理和调用就成了问题. 常用的服务间调用往往采用zk.Eurek ...

  3. 三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader

    发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"up ...

  4. form表单中enctype="multipart/form-data"的作用

    在我们使用php导入和导出excel表格的时候经常会见到 enctype="multipart/form-data",哪他的作用是什么呢? ENCTYPE="multip ...

  5. 通过Ajax使用FormData对象无刷新上传文件

    写在前面:本文说的这个方案有浏览器兼容性问题:所有主流浏览器的较新版本已经支持这个对象了,比如Chrome 7+.Firefox 4+.IE 10+.Opera 12+.Safari 5+,对兼容性比 ...

  6. multipart/form-data和application/x-www-form-urlencoded的区别

    在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型. 下边是说明:  application/x-www-form-urle ...

  7. H5 FormData对象的使用

    XMLHttpRequest Level2 添加了一个新的接口--FormData .[ 主要用于发送表单数据,但也可以独立使用于传输键控数据.与普通的Ajax相比,它能异步上传二进制文件 ] 利用F ...

  8. form表单编码方式设置为multipart/form-data,后台参数出现乱码情况

    一般在上传图片过程中,form中的编码方式一般采用multipart/form-data方式编码,但是后台这取参数时,可能会出现乱码情况:这里后台要采用转换编码方式: 页面: 后台:获取表单元素时,

  9. jquery 通过ajax FormData 对象上传附件

    之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id=& ...

  10. html5 formData上传 针对app端

    function uploadFile() { if ((document.getElementById("file").files[0].size / 1024).toFixed ...

随机推荐

  1. or等价改写union SQL案例

    同事找我优化一些SQL,其中有个SQL比较经典,拿出来分享给大家,从原来执行2分钟,到1.4S出结果. -- 原SQL SELECT count (*) FROM ( SELECT DISTINCT ...

  2. SpringCloud全链路灰色发布具体实现!

    灰度发布(Gray Release,也称为灰度发布或金丝雀发布)是指在软件或服务发布过程中,将新版本的功能或服务以较小的比例引入到生产环境中,仅向部分用户或节点提供新功能的一种发布策略. 在传统的全量 ...

  3. 2020年第十一届蓝桥杯第二场C/C++ B组省赛题解

    2020年第十一届蓝桥杯C/C++ B组省赛题解 试题A:门牌制作 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 \(2020\) 位住户,门牌号从 \(1\) 到 \(2020\) ...

  4. 等保测评之主机测评——Windows Sever

    目录 (一)身份鉴别 (二)访问控制 (三)安全审计 (四)入侵防范 (五)恶意代码防范 (六)可信验证 (七)数据完整性 (八)数据保密性 (九)数据备份恢复 (十)剩余信息保护 在测评过程中最为常 ...

  5. C语言求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。

    /* 开发者:慢蜗牛 开发时间:2020.5.28 程序功能:求100以内的素数 */ #include<stdio.h> int prime(int m); int prime(int ...

  6. 0x05.HelloJAVA

    基础知识 java的类目和文件名必须相同(区分大小写) java文件,先编译成字节码(.class文件),然后在JAVA的虚拟机JVM上以解释方式执行字节码 java的项目里面包含了源代码.依赖.配置 ...

  7. 使用axios发送请求的几种方式

    1.是什么? axios 它的底层是用了 XMLHttpRequest(xhr)方式发送请求和接收响应,xhr 相对于之前讲过的 fetch api 来说,功能更强大,但由于是比较老的 api,不支持 ...

  8. offline RL | Pessimistic Bootstrapping (PBRL):在 Q 更新中惩罚 uncertainty,拉低 OOD Q value

    论文题目:Pessimistic Bootstrapping for Uncertainty-Driven Offline Reinforcement Learning,ICLR 2022,6 6 8 ...

  9. 华企盾DSC无法从网页下载客户端(无法访问web端)

    解决方法1:服务器安装目录需要安装在英文目录,否则DSCApache.exe会启动不了,导致无法访问5580网页. 解决方法2:5580端口占用也会导致DSCApache.exe启动不了,可打开服务器 ...

  10. navicat连接服务器mysql

    navicat连接服务器mysql 第一步:配置防火墙 连接服务器的mysql数据库,我们首先需要在服务器上放行3306端口(MySQL服务对应的端口),进入服务器管理页面防火墙,点击添加规则,放行3 ...