上传文件,经过Zuul,中文文件名乱码解决办法

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 https://blog.csdn.net/forezp/article/details/77170470

转载请标明出处:
http://blog.csdn.net/forezp/article/details/77170470
本文出自方志朋的博客

问题描述

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

解决问题的过程

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

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

image.png

解决方案

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

server.port: 5000
zuul:
   routes:
      oss-api:
      path: /oss/**
      serviceId: oss-service

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

@RestController
@RequestMapping("/file")
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 教程汇总

SpringBoot教程汇总

Java面试题系列汇总

关注我的公众号

精彩内容不能错过!


扫码关注公众号有惊喜

(转载本站文章请注明作者和出处 方志朋的博客

没有更多推荐了,返回首页