您好,登錄后才能下訂單哦!
本篇內容介紹了“Zuul上傳文件時中文文件名亂碼怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在項目中又一個上傳文件的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上傳文件時中文文件名亂碼怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。