上传文件,经过Zuul,中文文件名乱码解决办法
转载请标明出处:
http://blog.csdn.net/forezp/article/details/77170470
本文出自方志朋的博客
问题描述
在项目中又一个上传文件的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")
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,中文文件名乱码解决办法的更多相关文章
- CuteFTP 9.0 上传文件时,中文文件名乱码
解决办法如图: 1.右键--->属性 2.选项---->档案名称编 选择ascⅡ
- SpringBoot上传文件,经过spingCloud-Zuul,中文文件名乱码解决办法
最近用springCloud整合springboot做分布式服务发现经过zuul之后上传的中文文件名乱码全都变成?????,从而引发异常,单独用springboot却是好的,在网上找到相关资料总结如下 ...
- spring clound gateway 上传文件,中文文件名乱码解决办法
先说解决办法吧: 有三种解决办法 1 ,zuul官方给出了解决方案,使用/zuul开头的请求可以避免中文名乱码以及支持大文件上传 域名是 testgateway.com 接口是 api/image ...
- uploadify上传控件中文的乱码解决办法
uploadify上传控件中文的乱码解决办法 网站用的gb2312的编码,用uploadify上传控件上传中文时在IE能部分成功,FF,Chrome则完全失败,查找了一天原因,结果发现是页面编码问题, ...
- 利用struts2上传文件时,如果文件名中含有-符号,那么会出错
利用struts2上传文件时,如果文件名中含有-符号,那么会出错 报错如下: HTTP Status 500 - C:\Program Files\Apache Software Foundation ...
- mui plus.uploader.createUpload 上传文件服务端获取文件名中文乱码问题
客户端上传文件需要做一次url编码:encodeURIComponent(fileName) 服务端:URL解码 var fileName = HttpUtility.UrlDecode(hfc.Fi ...
- php上传文件如何保证上传文件不被改变或者乱码
很多网站上传文件都截取文件后缀,前面用时间错加后缀组成,然而一下下载的网站并不需要这样,需要保持原来的文件名,这里讲述一下 //上传操作 function uploadify(){ //var_dum ...
- linux下中文文件名乱码解决
在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码.虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF- ...
- 上传文件时$_FILES为空的解决方法
上传视频的时候打印$_FILES为空,小的文件就没问题,后来发现是因为传的文件太大, 出现这个问题的原因主要有两个:表单原因或者php设置原因: 1,表单类型: 上传文件的表单编码类型必须设置成 en ...
随机推荐
- SpringSecurity 3.2入门(1)框架介绍
关于Spring Security Spring Security,这是一种基于Spring AOP和Servlet过滤器 [7] 的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法 ...
- Array、ArrayList和List三者的区别
数组 class TestArraysClass { static void Main() { // Declare a single-dimensional array ]; // Declare ...
- Razor语句(VIew)小知识
1.可以写后台语句 例如:
- 面向对象(基础oop)之类与对象
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 线程的Interrupt方法与InterruptedException解析
线程阻塞状态与等待状态(当一个线程处于被阻塞或等待状态时,它暂时不活动,不允许任何代码且消耗最少的资源) 当一个线程试图获得一个内部的对象锁(而不是java.util.concurrent库中的锁), ...
- Notes about Vue Style Guide
A. Necessary Multiple-word for component’s name Data for component must be a function The definition ...
- document.write()重写问题
document.write(); 可用于重写给某个元素追加内容; 当document.write(); 用于JS文件中,会重写整个页面,解决这个问题有多种方法. 重写原因:当onload的时候执行 ...
- sass(混合mixin的调用、@content)
sass中使用@mixin声明混合,可以传递参数,参数名以$符号开始,多个参数以逗号分开,也可以给参数设置默认值.声明的@mixin通过@include来调用 1.无参数mixin scss.styl ...
- Intent的简单使用
主要实现Intent之间值得转递,如从AActivity到BActivity之间传一个数值,一个实体类,一个集合类 下面代码只要是实现对startActivityForResult的使用,用ABC 3 ...
- Siebel计划和实施
1.计划: 自上而下计划配置项目 1)首先,确定UI和应用产品功能 2)然后,确定为实现UI功能而需要在业务层所做的更改 3)最后,确定为实现业务层更改而需要在数据层所做的更改---尽可能少做更改 如 ...