做一个简单的文件上传下载的功能,上传没问题,但是下载的时候报错,java.io.FileNotFoundException:(文件名、目录名或卷标语法不正确。)
开始以为是从前端传过来的路径有问题,百度之后,试过其他的解决方案,都不成功。无奈,后尝试先把后台代码中的文件下载路径写死。
再次测试下载,成了!
说明就是路径或文件名的问题。之后分别把路径和文件名写死做测试。
路径为变量,文件名写死,下载成功:
文件名为变量,路径写死,下载失败:
可得:此问题是由文件名引起
判断文件变量的值
光看字面,是完全一样的,中间也没空格或其它字符,但是判断出的却是不用的
又经过一些测试,此处不赘述,最后发现是编码的问题。
解决方法
将文件名编码做一个转换,如果名称带中文要改成GBK或者U8
成功,问题解决!
文件下载异常,编码问题记录。2020-07-24