解决通过zuul上传文件,文件名中文乱码问题

     最近这个问题一直困惑着项目组。文件上传,请求不经过zuul的时候,一切正常。没有出现乱码问题。一旦请求经过zuul,上传后获得的文件名,就会出现中文乱码问题。中文会变成???

下面贴出来我zuul的部分配置:

zuul:
  sensitive-headers: Access-Control-Allow-Origin
  ignored-headers: Access-Control-Allow-Origin,H-APP-Id,Token,APPToken #需要忽略的头部信息, 
            不再传播到其他服务
  host:
    connect-timeout-millis: 60000
    socket-timeout-millis: 60000
  retryable: true
  routes:
    product:
      path: /v2.0/lls/product/**
      serviceId: lls-cloud-product-server
      sensitiveHeaders: "*"   # Zuul默认是不转发请求头或会过滤掉一些重要的头信息的,无法正确获取        
                                session,增加此配置解决shiro的session问题。
   

后来研究出来一种方法是这样的。在zuul下面添加如下配置,

servlet-path: / #解决文件上传时中文乱码问题,如果不加这行配置,文件上传遇到中文都会变成?号。

但是也会有问题。问题就是:如果加上这句,确实可以解决乱码问题,但是swagger却出不来了。把这句注释掉,swagger可以出来,但是会乱码。感觉这不是解决问题的方法。

真正的解决步骤如下:

1.如上zuul的配置不变。不需要加servlet-path

2.我原来上传文件的路径是http://localhost:port/v2.0/lls/product/fileUpload

只需要在原来上传文件的路径端口后加/zuul即可解决。如下:

http://localhost:port/zuul/v2.0/lls/product/fileUpload

其他的什么都不用改

所以呢,在此建议大家把文件上传的接口做成一个公共的接口,所有的文件上传都走一个方法。如果有其他业务需要用到文件上传的信息的话,只需要进行主外键关联即可。代码层面只需要使用父子类继承。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值