做了一個從URL下載文件的功能 剛開始用沒問題 後來發現中文名有問題
原先代碼:
String url="http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/文檔中心數據建模.mwb"
URL httpUrl = new URL(url);
String fileName= httpUrl.getFile();
FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));
//上面的中文名是不行 當然這裏如果前端傳過來的可以encodeURI編碼一下
//後臺我們編碼這樣整個的文件 new String(str,“utf-8”) 類似幾種方式都會把整個的url編碼掉其中 ://
等也會處理
修改後
URL httpUrl = new URL(UriUtils.encodePath(url, "UTF-8"));
String fileName= httpUrl.getFile();
FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));
UriUtils.encodePath(url, “UTF-8”))
//這裏引用的spring包下的工具類只會對我們的文檔中心數據建模進行編碼處理所以變成這樣樣子
http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1.mwb%20
不是什麼毛病 自己處理可能要根據規則處理一下 這裏直接有現成的用起來比較方便 有遇到的可以這樣用了