最近,接手了一个老程序需要增加新的功能,拿到需求文档之后粗略的看了一下,没有什么难点,就是使用的是自己没用过的jFinal框架,没办法,一点点弄吧。其中,有一个上传视频的功能,我将之前正常的上传文件代码贴了过去,本以为大功告成,可没想到事情却并没有自己想象的顺利。
写完代码之后,我拿自己手机里的一个视频进行了测试,结果为成功,但就是没在意视频大小仅为5M多,所以项目一到测试手里,尝试上传了一个50M大小的视频时,就出现上传失败的提示。
一开始我感到费解,自己明明测试了几遍,都可以上传成功,这个时候就陷入自己的思维误区,后来我也尝试上传100M的视频,果不其然也失败了。
下面就该找原因了,先看后台代码,打断点调试,发现程序在走到下面代码时出现如下错误
文件大小超出限制谷歌浏览器控制台也报错
找到错误之后,就开始改bug吧,中间几经坎坷波折,我就不一 一细说了,反正都是泪,因为我可以确定的是程序本身并没有什么问题,拿问题到底是出在哪呢?最后通过在查阅文档之后发现,jFinal框架默认上传文件大小最大为10M!
找到原因之后,事情就明朗多了,解决办法如下:
找到项目继承了JFinalConfig类的配置类,并找到 configConstant(Constants me) 方法,在方法中添加一条语句,
me.setMaxPostSize(文件大小*Const.DEFAULT_MAX_POST_SIZE),这里的文件大小单位为M,如:
我这里设置为上传文件大小最大为500M
然后再次测试
上传成功!
仅以此文章记录使用JFinal做上传文件遇到的坑,希望对遇到同样问题的朋友有所帮助,第一次写记录文章,不喜勿喷,谢谢!
网友评论