在java的上传文件的时候,有时候需要对上传文件名称中含有的特殊字符,特别是在URL的关键字字符进行过滤,不然即使这个文件保存到了数据库,在下载这个文件时,由于通过url发送的url请求参数中的文件名带有特殊字符,而没法得到正确的中文文件名,以至在数据库中取不到不到正确的文件而下载失败,因此上传的时候对文件名做如下处理:
// 获得文件:
MultipartFile multipartFile = multipartRequest.getFile(inputFileName);
// 获得文件名:
String fileName = multipartFile.getOriginalFilename();
//过滤文件特殊字符,因为这些在下载时的url请求参数中属于url固有的特殊字符+/?%#&=
String regEX="[+%#&=()]";
Pattern p=Pattern.compile(regEX);
Matcher m=p.matcher(fileName);
fileName=m.replaceAll("").trim();