restTemplate发送multipartFile和String混合参数及接收

news/2024/11/28 4:32:48/

最近有个任务是将文件上传到服务器后再发送到另一台服务器接收,作为一个代码表述为主的程序员,文字表达能力有限,就上代码吧~~

前端代码片段

<table><tbody><tr><td>需要上传服务器的文件</td><td><input type="file" id="file0001"></td></tr></tbody>
</table>
<div class="button-container"><input type="submit" value="上传" @click="uploadMiniIO">
</div>
uploadMiniIO: function () {var that = this;var formData = new FormData();formData.append("structureFile", document.getElementById('file0001').files[0]);formData.append("structureFileType", "proj");$.ajax({url: epmsServerUrl + '/history-pms-project-transfer/upload-structure-file',type: 'POST',data: formData, // 上传formdata封装的数据包dataType: 'JSON',processData: false,// jQuery不要去处理发送的数据contentType: false, // jQuery不要去设置Content-Type请求头success: function (data) {that.info = data.data;}})
}

后台接收端代码

@PostMapping("/upload-structure-file")
public Result uploadFileByFileId(@RequestPart("structureFile") MultipartFile multipartFile, String structureFileType){Map<String, Object> map = new HashMap<>();map.put("structureFileType", structureFileType);return restTemplateUtils.postForMiniIO(pmsminiioUploadStructureFiles, multipartFile, map);
}public Result postForMiniIO(String url, MultipartFile multipartFile, Map<String, Object> reqMap) {//设置请求头HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);//设置请求体,注意是LinkedMultiValueMapByteArrayResource byteArrayResource = null;try {byteArrayResource = new ByteArrayResource(multipartFile.getBytes()) {@Overridepublic long contentLength() {return multipartFile.getSize();}@Overridepublic String getFilename() {return multipartFile.getOriginalFilename();}};} catch (IOException e) {Result.error(-1, "上传文件失败,文件二进制获取失败");}MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();form.add("structureFile", byteArrayResource);form.setAll(reqMap);HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);return restTemplate.postForObject(url, files, Result.class);
}//远端接收代码
@PostMapping("/upload-structure-file")
public Result uploadFileByFileId(@RequestPart("structureFile") MultipartFile multipartFile, String structureFileType){Map<String, Object> map = new HashMap<>();map.put("structureFileType", structureFileType);map.put("structureFile", multipartFile);
}

http://www.ppmy.cn/news/40247.html

相关文章

JavaSE基础(17) static 关键字

static 关键字 静态&#xff08;static&#xff09;可以修饰属性和方法。 称为静态属性&#xff08;类属性&#xff09;、静态方法&#xff08;类方法&#xff09;。 静态成员是全类所有对象共享的成员。 在全类中只有一份&#xff0c;不因创建多个对象而产生多份。 不必创…

博客文章效果

学习风宇blog md文档转html&#xff08;markdown-it的使用&#xff09;语法高亮、行号、一键复制toc生成目录sticky粘性定位 <style lang"scss"> import url(//at.alicdn.com/t/c/font_4004562_9v94jccafmc.css); import url(https://fonts.font.im/css?fam…

注解的使用

目录 注解的理解 基本的 Annotation介绍 Override 注解的案例 Override 使用说明 Deprecated的说明 SuppressWarnings 注解的案例 元注解 元注解的基本介绍 Retention 注解 Target Documented Inherited注解 注解的理解 1)注解(Annotation)也被称为元数据(Metadat…

创建型模式-建造者模式(Builder)-解决复杂对象创建问题

创建型模式-建造者模式Builder-解决复杂对象创建问题 创建型模式建造者模式(Builder)解决复杂对象创建问题描述适用环境优点:缺点:违反原则代码实现背景描述创建型模式 建造者模式(Builder) 解决复杂对象创建问题 描述 通过将一个复杂对象的构建过程分解为多个简单对…

VMware安装 kali-linux出现的报错:未能启动虚拟机

VMware安装 kali-linux出现的报错&#xff1a;未能启动虚拟机 右键-兼容性&#xff0c;改成vm16. 发生错误&#xff0c;导致虚拟 CPU 进入关闭状态 找到.vmx文件&#xff0c;搜索并修改成&#xff1a;virtualHW.version "16"

Linux常用命令问答

文章目录本文根据《Linux就该这么学》进行总结 在RHEL 7系统及众多的Linux系统中&#xff0c;最常使用的Shell终端是什么&#xff1f; 答&#xff1a;Bash&#xff08;Bourne-Again SHell&#xff09;解释器。执行Linux系统命令时&#xff0c;添加参数的目的是什么&#xff1f;…

pip、conda查看镜像源及更换镜像源

1.查看已经安装过的镜像源&#xff1a;conda config --show 查看配置项channels channels: https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/co…

【StarRocks】数据结构和修改表语句大全

StarRocks的改表语句 文章目录StarRocks的改表语句1 数据类型2 修改表结构3 示例1 数据类型 2 修改表结构 StarRocks 支持多种 DDL 操作。 可以通过 ALTER TABLE 命令可以修改表的 Schema&#xff0c;包括增加列&#xff0c;删除列&#xff0c;修改列类型&#xff08;暂不支持…