解決通過zuul上傳檔案,檔名中文亂碼問題

2021-09-25 16:21:54 字數 1134 閱讀 7927

最近這個問題一直困惑著專案組。檔案上傳,請求不經過zuul的時候,一切正常。沒有出現亂碼問題。一旦請求經過zuul,上傳後獲得的檔名,就會出現中文亂碼問題。中文會變成???

下面貼出來我zuul的部分配置:

zuul:

sensitive-headers: access-control-allow-origin

不再傳播到其他服務

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即可解決。如下:

其他的什麼都不用改

所以呢,在此建議大家把檔案上傳的介面做成乙個公共的介面,所有的檔案上傳都走乙個方法。如果有其他業務需要用到檔案上傳的資訊的話,只需要進行主外來鍵關聯即可。**層面只需要使用父子類繼承。

springcloud 上傳檔案獲取檔名亂碼

專案中使用了路由zuul。用httpservletrequest接收檔案引數 使用 multiparthttpservletrequest multi multiparthttpservletrequest httpservletrequest file.getoriginalfilename 得到...

springcloud上傳檔名亂碼

問題 springcloud 用zuul做閘道器,檔案上傳,檔名亂碼,就算設定過編碼也不起作用。解決 給上傳路徑中加上 zuul。例子 原來的上傳路徑 http localhost service upload.do zuul通過service分發 修改後的上傳路徑 http localhost z...

MultipartFile上傳附件檔名處理記錄

getoriginalfilename 獲取源檔名。在chorme中獲取是檔名 字尾,在ie模式中獲取的是路徑 檔名 字尾。如 檔案路徑 d temp 1.txt chorme上傳檔案,getoriginalfilename 1.txt ie模式上傳檔案,getoriginalfilename d ...