SpringCloud系列Zuul上传文件,中文文件名乱码解决办法

网友投稿 675 2022-05-29

问题描述

在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件,文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题。怀疑网关zuul对中文做编码处理。

解决问题的过程

这个问题出现之后,我个人的解决办法如下:

·      第一反应是看文档,文档地址:http://cloud.spring.io/spring-cloud-static/Dalston.SR1/#_uploading_files_through_zuul

·      粗略地看了下文档,以为没有给出解决方案(其实已经给出,只是没有理解好文档)。狂撸源码,依然没有找到解决办法。

·      Google搜,搜到了这条Issue,https://github.com/spring-cloud/spring-cloud-netflix/issues/1385

这位大神给出的解决办法,使用zuul servlet去上传文件,而不是默认的spring mvc。使用zuul servlet之需要在请求uri,前面加上”/zuul”即可。

解决方案

首先列出我的zuul服务的配置:

server.port: 5000

zuul:

routes:

oss-api:

path: /oss/**

serviceId: oss-service

oss服务上传文件的接口,代码如下:

@RestController

@RequestMapping("/file")

SpringCloud系列:Zuul上传文件,中文文件名乱码解决办法

public class FileUploadController {

@PostMapping("/upload")

public RespDTO handleFileUpload(@RequestParam("file") MultipartFile file) {

//上传代码省略

return RespDTO.onSuc(upLoadResult);

}

那么,经过网关,调用上传文件的url地址如下:

localhost:5000/oss/file/upload

这时如果出现中文文件名,上传文件的文件名会出现失败。按照上述大神的办法,直接在这个uri,前面加上”/zuul”,那么请求地址如下:

localhost:5000/zuul/oss/file/upload

测试一下,果然通过,上传中文名的文件乱码问题解决。

方志朋简介:SpringCloud中国社区联合创始人,博客访问量突破一千万,爱好开源,热爱分享,活跃于各大社区,保持着非常强的学习驱动力,终身学习践行者,终身学习受益者。目前就职于国内某家知名互联网保险公司,担任DEVOPS工程师,对微服务领域和持续集成领域研究较深,精通微服务框架SpringCloud

网络安全 Spring Cloud

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【读书会第十二期】《深入理解Java虚拟机》 第1章 Java虚拟机内存管理
下一篇:我的华为云初体验
相关文章