服务端接口代码如下:

 /**
* 上传数据+实体信息
*/
@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. 记一个 Android 14 适配引发的Android 存储权限问题

    一.bug 背景 项目中有下面这样一段代码,在 Android T 版本运行正常,现在适配到 Android U 上之后,运行时 crash 了.... ... values.put(MediaSto ...

  2. 【日常收支账本】【Day04】优化编辑动账记录的操作——QTableWidget单元格设置QComboBox控件

    一.项目地址 https://github.com/LinFeng-BingYi/DailyAccountBook 二.新增 1. 在表格中设置选项列表,让用户更快地编辑动账记录 1.1 功能详述 为 ...

  3. R!!C!!E!!

    打开页面只有一句话提示,提示有敏感信息泄露 这里的话使用dirresearch扫描网站结构 在这里我们可以看到响应码正常且有反应的多数都是.git文件 这里我们使用Git源码下载的脚本下载Git源码 ...

  4. 一文搞懂C#中类成员的可访问性

    公众号「DotNet学习交流」,分享学习DotNet的点滴. 文末有总结,想快速浏览的朋友可直接看文末. 1.成员访问修饰符 在C#中类成员访问修饰符一共有5个,分别是public.private.p ...

  5. 离散傅里叶变换DFT的应用

    目录 一维DFT 1 DFT的相关内容 2 DFT计算结果验证 3 DFT的时频曲线分析 4 DFT的应用 二维DFT 1 DFT在图像处理时的相关内容 2 DFT滤波应用 一维DFT 1 DFT的相 ...

  6. STA分析-复制

    1 静态时序分析(Static Timing Analysis)静态时序分析(Static Timing Analysis):静态执行对于数字设计时序的分析,不依赖于施加在输入端口上的激励,验证设计是 ...

  7. 循环返回结果结果集(connect 函数使用)

    --示例: SELECT 0 + ROWNUM sonID FROM DUAL /*区间范围*/ CONNECT BY ROWNUM <= 20;

  8. 吉特日化MES系统&生产工艺控制参数对照表

    吉特日化MES生产工艺参数对照表 工艺编号 PROCE_BASE_TIMER 工艺名称 定时器 工艺说明 主要用于生产工艺步骤过程计时 参数编号 参数名称 参数描述 Prop_Timer_Enable ...

  9. 解决k8s删除pod后又重新创建了新的pod

    1.问题现象 2.原因 在Kubernetes中,当你删除一个Pod时,如果该Pod是由Deployment.ReplicaSet或PodController创建的,那么这个Pod会被标记为" ...

  10. 华企盾DSC防泄密:有一个文件申请解密失败,提示拒绝访问(密钥不对)

    解决方法:将文件拖到加密进程中提示密钥不对,找到原来的数据库还原解密