问题:
在网站上上传资源文件后,需要异地进行下载。springMVC映射时,利用了@PathVariable在controller层来获取文件的名称。问题来了,获取的文件名称有多个“.”分隔符时,会丢失数据。比如获取xxx.jpg,结果是xxx.
原因:@PathVariable在获取值的时候对传入的值进行了截断。
解决办法:
1) 在请求地址后增加一个静态的字符段,这个段没有任何意义,可以为任意字符。
比如:xxx.jpg/kkkk
2) 在@RequestMapping的value中使用SpEL来表示,
@PathVariable("{filename:[a-zA-Z0-9\.]+}")