阳光沙滩
让学习编程变得简单
上传空文档引起的bug
发表于 2020-04-29    阅读次数 199

bug场景

​ 前端测试上传文件的时候,图片能够正常上传,但是新建的文档也能上传,但上传后没有该文档。后台日志显示文件能上传成功,也不报任何异常,但上传的文件消失了,没有该文件。后台是借助Spring Boot搭建,MultipartFile处理文件上传,前端就是很普通的form表单提交,enctype都已经设置正确,但在前端上传文档的时候文件后死活就是不显示在后台服务其中。

图片描述

postman调试正常,后台日志正常。

图片描述

我上传的文件去哪里了?不翼而飞?好了,遇到问题了,不要慌,解决问题!在确保一切代码逻辑正常的情况下先不要去考虑是不是框架出现了问题先找自身,我还能怎么找,代码逻辑都正确,还有一个点没有考虑,看看是不是文件的问题!

解决方案

因为上传图片能够成功并显示,但文档就不可以,所以说文件是找bug的一个切入点。

又重复了上传几次新建的文档,结果还是那个结果,后来我试了其他的文档,哎,成了,上传成功,新建的文档上传失败,但之前的文档就能成功这是什么原因,这时我脑子灵光一闪,想到了之前看过的一篇文章,印象不太清晰了,就是大致内容可能是空文件引起的磁盘空转,导致文件不显示,因为文件内容底层不就是01字节流吗,空文档所占大小0KB,如图,我尝试向里面添加一些内容,果然文件上传成功了。所以说可以得出一个结论,空文件上传到后端可能会引起没有该文件的问题图片描述

图片描述

图片描述

启示

对于上传文档内容为空时如何处理,看似一个不起眼的错误,当测试出现bug的时候,就会有点让人摸不着头脑,一杯茶一包烟,一个bug改一天的日子就要到来!所以如果能对空文档上传的时候给与一定的提示,无疑对于测试还是开发是十分友好的!

MultipartFile.isEmpty() || MultipartFile.getSize()
去判断文档内容是否为空,为空给与相应处理