温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Zuul上传文件时中文文件名乱码怎么解决

发布时间:2021-08-06 10:25:26 来源:亿速云 阅读:163 作者:chen 栏目:大数据

本篇内容介绍了“Zuul上传文件时中文文件名乱码怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

问题描述

在项目中又一个上传文件的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上传文件时中文文件名乱码怎么解决解决方案

首先列出我的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

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

“Zuul上传文件时中文文件名乱码怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI