Zuul上傳文件,中文文件名亂碼解決辦法

轉載請標明出處:
blog.csdn.net/forezp/arti…
本文出自方誌朋的博客git

問題描述

在項目中又一個上傳文件的oss服務,直接調用服務的上傳文件成功,若是通過網關zuul服務,上傳中文名字的文件,文件名會出現亂碼,最終致使上傳失敗,若是上傳英文名字的文件,沒有任何問題。懷疑網關zuul對中文作編碼處理。github

解決問題的過程

這個問題出現以後,我我的的解決辦法以下:spring

  • 第一反應是看文檔,文檔地址:cloud.spring.io/spring-clou…api

  • 粗略地看了下文檔,覺得沒有給出解決方案(其實已經給出,只是沒有理解好文檔)。狂擼源碼,依然沒有找到解決辦法。bash

  • Google搜,搜到了這條Issue,github.com/spring-clou…mvc

這位大神給出的解決辦法,使用zuul servlet去上傳文件,而不是默認的spring mvc。使用 zuul servlet之須要在請求uri,前面加上"/zuul"便可。app

image.png
image.png

解決方案

首先列出個人zuul服務的配置:測試

server.port: 5000
zuul:
   routes:
      oss-api:
      path: /oss/**
      serviceId: oss-service複製代碼

oss服務上傳文件的接口,代碼以下:ui

@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

測試一下,果真經過,上傳中文名的文件亂碼問題解決。

關注個人公衆號

精彩內容不能錯過!

forezp.jpg
forezp.jpg
相關文章
相關標籤/搜索