Phpcms v9在下载的时候会检查客户端的IP地址,偶尔会导致参数错误,从网上也查询了大量的资料,目前知道的解决办法无非就2个,经测试一个无效,一个不能解决根本问题。已经知道的2个办法一个是加$data['id'] = $id; 测试 无效,一个是更改下载地址显示原始下载地址,不经过Phpcms v9的内核php文件来处理 直接生成下载地址,这倒是不会报错了,可是别人有权限问题的网站那就头疼了。
下面来说说代码笔记研究出来的解决办法,这也要得益于一篇网上吐槽Phpcms的文章给的灵感。
1、打开/phpcms/modules/content/down.php 这个文件。
2、找到大概100行的如下代码:
if(!$downid || empty($fileurl) || !preg_match("/[0-9]{10}/", $starttime) || !preg_match("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/", $ip) || $ip != ip()) showmessage(L('illegal_parameters'));
3、删除中间patch IP的部分代码
|| !preg_match("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/", $ip) || $ip != ip()
删除后的代码:
if(!$downid || empty($fileurl) || !preg_match("/[0-9]{10}/", $starttime) ) showmessage(L('illegal_parameters'));
上传覆盖,更新缓存。点击下载,居然成了。留下笔记,方便下次使用。
本文转载自:精准像素:11px.cn ,感谢作者分享实用知识