原因是
文件名或文件夹名中不能出现以下字符:\ / : * ? " < > |
但是后台读取到的附件的文件路径就是这样的
网上大佬说了,这样处理
replaceAll里面用的是正则表达式,所以字符串转义一次,正则转义一次,所以一个斜扛要写4个,而不是俩,真心希望这些乱发垃圾的博客能被处理一下
① java 把字符串中的反斜杠(\)替换成(\\)
replaceAll里面用的是正则表达式,所以字符串转义一次,正则转义一次,所以一个斜扛要写4个,用replaceAll( "\\\\ ", "\\\\\\\\ ");
② java 把字符串中的反斜杠(/)替换成(\)
replaceAll("/", "\\\\");
运行结果
message d:\WEB_APP_QuChongFu\file\五月.xlsx (文件名、目录名或卷标语法不正确。)