最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決@PathVariable對(duì)于特殊字符截?cái)嗟膯栴}

 更新時(shí)間:2021年02月24日 08:38:09   作者:往前的娘娘  
這篇文章主要介紹了解決@PathVariable對(duì)于特殊字符截?cái)嗟膯栴},具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

概述:

@ResponseBody
 @RequestMapping(value="/download/{fileName:[a-zA-Z0-9\\.\\-\\_]+}", method = RequestMethod.GET)
 public void downloadAmr( HttpServletRequest request, HttpServletResponse response, @PathVariable("fileName") String fileName) {
 response.setContentType("application/octet-stream");
 String dir = System.getProperty("catalina.home"); //獲得tomcat所在的工作路徑 
 System.out.println("tomcat路徑=" + dir); 
 //獲取到存儲(chǔ)了文件存儲(chǔ)位置的filedir.properties 文件路徑 
 String dir2 = dir.substring(0, dir.length()) + File.separator +"webapps" + File.separator + "ROOT" + File.separator + fileName; 
 File file = new File(dir2);
 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 byte[] buffer = new byte[1024]; 
 int len; 
 try { 
 InputStream inputStream = new FileInputStream(file);
 while ((len = inputStream.read(buffer)) > -1 ) { 
 byteArrayOutputStream.write(buffer, 0, len); 
 } 
 byteArrayOutputStream.flush(); 
 response.getOutputStream().write(byteArrayOutputStream.toByteArray());
 } catch (FileNotFoundException e) {
 logger.error("讀取文件異常", e);
 } catch (IOException e) { 
 logger.error(e.getMessage(), e); 
 } 
 logger.info("下載進(jìn)入。。。。。。。。。。。。。。。。。");
 }

總結(jié):

1、默認(rèn)值情況下 /download/{fileName}, 然后 @PathVariable("fileName"),

如果路徑為/download/1.jpg的話,那么 fileName=1 而不是1.jpg,問題就是默認(rèn)對(duì)于字符._-相關(guān)進(jìn)行截?cái)嗔恕?/p>

2、解決方法就是

{fileName:[a-zA-Z0-9\\.\\-\\_]+}

用正則表達(dá)式表示這些字符不能被截?cái)唷?/p>

補(bǔ)充:Springboot用@PathVariable傳參,最后一個(gè)參數(shù)會(huì)丟失小數(shù)點(diǎn)后面的部分

當(dāng)使用@PathVariable傳遞路徑參數(shù)時(shí),竟然神奇的發(fā)現(xiàn),后面一位參數(shù)的小數(shù)點(diǎn)后面部分竟然不見啦,如下代碼:

Controller方法注解如下:

@RequestMapping(value = "/user/findPassword/{email}", method = RequestMethod.GET, produces="application/json")

我這里是想傳遞個(gè)郵箱過來的,然后就發(fā)現(xiàn)了沒有郵箱后綴。

百思不得其解,遂百度之,解決方法如下:

@RequestMapping(value = "/user/findPassword/{email:.+}", method = RequestMethod.GET, produces="application/json")

在參數(shù)后面添加個(gè)冒號(hào)和一個(gè)小數(shù)點(diǎn)在加上一個(gè)加號(hào):{email:.+}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論

巫溪县| 梨树县| 临江市| 赤水市| 陈巴尔虎旗| 永安市| 咸宁市| 庆阳市| 靖宇县| 宁蒗| 观塘区| 靖州| 拉萨市| 广东省| 芦溪县| 英德市| 垫江县| 卫辉市| 林口县| 清苑县| 万宁市| 泰宁县| 台东市| 清远市| 盐山县| 阳春市| 遂溪县| 城市| 团风县| 清河县| 丹江口市| 朝阳县| 霞浦县| 安平县| 孝昌县| 连城县| 靖边县| 阿拉善盟| 全州县| 凤翔县| 孝义市|