在spring cloud微服务体系内,我们一般使用zuul作为网关,那么自然而然我们所有的对外服务都只能通过zuul对外暴露。最近遇到了一个中文名称文件上传,后台提取中文名乱码(originalFilename)的问题,其实问题不难,这里我就单开个主题方便搜索分享。
关于zuul的翻译,可以参考spring cloud Zuul 理解 。节选作者文中关于大文件上传的段落,其实这个方案也就是解决文件乱码。
如果你使用 @EnableZuulProxy , 你可以使用代理路径上传文件, 它能够一直正常工作只要小文件.
对于大文件有可选的路径"/zuul/*"绕过Spring DispatcherServlet (避免处理multipart).
比如对于 zuul.routes.customers=/customers/** , 你可以使用 "/zuul/customers/*"去上传大文件.
按照这个思路,只要在原来的上传url(如/api-file/upload)的最前端简单地加上/zuul/(/zuul/api-file/upload)就可以了,非常简单;在github见过一个issue也是这么解决问题,不过忘了链接哈哈。