最近用Wordpress搭建了一个小站,主要分享一些教学文档,但领导希望这些文档只能在线浏览,不能下载,测试了多种方案之后,最终我选择了将doc转成swf的方式,这样既可以保留文档原貌,又能达到防下载的目的。
在本地测试的时候用了一个比较老的主题,只能支持Wordpress 3.X(具体是几没注意),后来放到网上之后我升级了一下Wordpress,升到了4.2.2最新版,结果升级之后发现问题了:swf文件无法上传,提示:“抱歉,出于安全的考虑,不支持此文件类型”。试了很多次,发现doc之类的文件都没问题,就是无法上传swf文件。
我上网查了一下这个问题,发现“抱歉,出于安全的考虑,不支持此文件类型”的问题早已有之,只需要添加相应的文件类型即可,但是我找到源码之后发现swf早已添加过了,看来还有别处限制了swf文件的上传。
后来漫无目的地看源码,我不太懂PHP,只能连猜带蒙,不过终于发现有一处源码很可疑:wp-includes文件夹下的functions.php中,第2290行(Wordpress4.2.2版本)有这么一句:
unset( $t['swf'], $t['exe'] );
结合上下文内容,我猜这里是过滤swf和exe文件上传的,于是将代码改为:
unset($t['exe'] );
保存后覆盖源文件,重新测试上传swf文件,发现已经可以正常上传,问题解决。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/250952.html