FastDFS将上传的视频截图后再上传截图抛出FileNotFoundException
发生该异常背景:lz在做项目功能的时候,需要使用FastDFS多文件上传视频,并且在上传视频后需要对视频进行截图同时也保存到FastDFS中。在实现功能的10次单次和多次上传测试中均没有发现问题,后来无意中发现上传的时候出现了FileNotFoundException异常。如下图:
分析:根据提示的系统文件路径,我直接在电脑中回车,是可以打开截图文件的,但却报文件未找到异常。最奇怪的是上传文件过程中并不是每次都会抛此异常,这中情况更让我费解,实在是想不通。后来经过高人(我哥)指点,将关于系统中的"\"全部换成“/”,然后,玩了好几个小时的bug瞬间解决了,这真的是让我又气又喜。后得知是由于正反斜杠在Windows和Linux系统中作用不同造成(截图工具FFmpeg以及临时存储的截图文件存放在Windows自己的电脑中,而非关系数据库存放在Linux系统中)故为此对正反斜杆在win和linux系统中的区别做了一些总结。
解决办法:将系统中如下图的\换成/:
Windows和Linux系统中正反斜杆的区别:
Windows:
“/”是表示参数,“\”是表示本地路径。
Linux和Unix:
“/”表示路径,“\”表示转义,“-”和“–”表示参数。
网络:
由于网络使用Unix标准,所以网络路径用“/”。