文件上传到服务器文件名中文乱码问题

 更新时间:2024年02月04日 15:20:29   作者:C18298182575  
上传附件到部署服务器,但是上传到服务器出现文件名中文乱码,中文变成(?)问号,而且在本地测试是正常的,通过打印日志发现,下面fileName乱码,本文给大家讲解文件上传到服务器文件名中文乱码问题解决方案,感兴趣的朋友一起看看吧

文件上传到服务器文件名中文乱码问题

1,需求分析

上传附件到部署服务器,但是上传到服务器出现文件名中文乱码,中文变成(?)问号,而且在本地测试是正常的。

通过打印日志发现,下面fileName乱码。

2,原因及解决方式参考

SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法,参考文末补充知识点介绍,非常详细。

方案1,如果前后台都改加/zuul改动较大,所有Controller地址加/zuul,里面所有的方法对应前端地址都要修改

方案2,本地启动报错

最终的方案

2.1)  前端:涉及到上传的接口前面加/zuul

现地址:zuul/csms/sales/plan/insert/upload

原地址:/csms/sales/plan/insert/upload

后端:controller路径不改动

看下图网关及controller的配置信息,直接在前端请求路径前加/zuul,无法请求到后台,路径无效。

2.2)修改nginx路由配置

查找nginx安装的路径以及相关安装操作命令

Linux环境下,怎么确定Nginx是以那个config文件启动的? 
[root@localhost ~]# ps -ef | grep nginx
root 21196 1 0 23:40 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 21197 21196 0 23:40 ? 00:00:00 nginx: worker process
root 21199 20993 0 23:42 pts/0 00:00:00 grep --color=auto nginx

配置信息

转发路由添加上图下面红框配置信息,允许/zuul开头的路径通过nginx转发

补充:

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

最近在使用SpringCloud搭建微服务的过程中,发现上传文件经过Zuul网关转发的时候,回应为上传文件名中文乱码导致文件的写操作失败,从而导致文件上传失败,但是不经过Zuul转发的时候,文件上传正常,因此猜测是Zuul对上传的请求的编码进行了处理。最终在网上找到了两种解决方案:

方案一、在上传文件的请求路径之前添加字符串“zuul”声明此请求的编码不做处理。

/**
 * 各种poi导入导出的请求控制模块;
 * 
 * @author:JunZhou
 * @Company:LongZheng
 * @Email:1769676159@qq.com
 * @2018年1月16日@下午4:28:49
 */
@RestController
@RequestMapping("/poi")
@ClazzNote(desc = "excel文件", resource = "input", modName = "poi")
public class POIController {
    @RequestMapping("/uploadExcel")
    @ServiceNote(desc = "上传考勤明细的excel", auth = ServiceNote.AUTH.CHECK)
    public ResObject<ResponseMessage> singleFileUpload(MultipartHttpServletRequest request,
        RedirectAttributes redirectAttributes, HttpServletResponse response) {
        Integer stateCode = poiService.receiveUploadExcel(request, redirectAttributes, response);
        //根据返回值确定响应信息实体;
        ResponseMessage responseMessage = UploadStatusEnum.desicideUploadStatusBystateCode(stateCode, response);
        //设置响应状态为200;
        response.setStatus(UploadStatusEnum.UPLOAD_OK.getStateCode());
        return new ResObject<ResponseMessage>(null,responseMessage);
    }

例如在当前代码下,请求路径是:

localhost:9090/oss/poi/uploadExcel

那么采用方案一解决中文乱码的请求路径就是:

localhost:9090/zuul/oss/poi/uploadExcel

经过测试,中文乱码问题成功解决。

方案二:

在方案一的基础上,不仅要改动后端代码,前端代码也要变更,较为麻烦,
因此更简单的方案是在zuul的配置文件中添加一个如下的属性:

zuul.servlet-path=/

注意实在网关的配置文件中添加的,经过本人侧ishi,问题也成功解决了。

参考文章:

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

2、zuul proxy file upload, file name is Chinese garbled

到此这篇关于文件上传到服务器文件名中文乱码问题的文章就介绍到这了,更多相关文件上传到服务器文件名中文乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx的流式响应配置实现小结

    Nginx的流式响应配置实现小结

    nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,本文主要介绍了Nginx的流式响应配置实现小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • 阿里云国际版使用Nginx作为HTTPS转发代理服务器的处理方法

    阿里云国际版使用Nginx作为HTTPS转发代理服务器的处理方法

    本文介绍了使用NGINX作为HTTPS流量转发代理的两种方法。它总结了NGINX使用HTTP CONNECT隧道和NGINX流充当HTTPS转发代理的解决方案的原则,环境构建要求,应用场景和关键问题
    2022-05-05
  • Nginx处理跨域问题小结

    Nginx处理跨域问题小结

    这篇文章主要介绍了Nginx处理跨域问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Nginx四层负载均衡的实现示例

    Nginx四层负载均衡的实现示例

    Nginx 不支持传统的四层负载均衡,但可以通过stream模块配合TCP实现类似的功能,本文主要介绍了Nginx四层负载均衡的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Nginx服务器中用于生成缩略图的模块配置教程

    Nginx服务器中用于生成缩略图的模块配置教程

    这篇文章主要介绍了Nginx服务器中用于生成缩略图的模块配置教程,包括实时生成缩略图到硬盘上的方法讲解,需要的朋友可以参考下
    2016-01-01
  • 使用Nginx作缓存服务器以及删除其缓存文件的方法

    使用Nginx作缓存服务器以及删除其缓存文件的方法

    这篇文章主要介绍了使用Nginx作缓存服务器以及删除其缓存文件的方法,作cache时需要注意一下磁盘的IO瓶颈,需要的朋友可以参考下
    2015-11-11
  • nginx 80端口配置多个location无效访问404问题

    nginx 80端口配置多个location无效访问404问题

    这篇文章主要介绍了nginx 80端口配置多个location无效访问404问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx常见的错误配置举例

    Nginx常见的错误配置举例

    这篇文章主要介绍了Nginx常见的错误配置举例,帮助大家更好的理解和学习使用Nginx,感兴趣的朋友可以了解下
    2021-03-03
  • Nginx双机热备的实现步骤

    Nginx双机热备的实现步骤

    本文主要介绍了Nginx双机热备的实现步骤,是国内企业中最为普遍的一种高可用方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Nginx进行域名重写和泛域名解析配置的方法

    Nginx进行域名重写和泛域名解析配置的方法

    这篇文章主要介绍了Nginx进行域名重写和泛域名解析配置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论