杰奇1.8以上版本,后台采集封面图bug修复
之前在测试杰奇的后台采集的时候,发现了一个奇怪的问题,就是在后台采集的时候,虽然小说信息和章节都可以被成功采集,但是封面图片却变成404。起初我认为是文件夹权限的问题导致封面图片不能正确保存,但是其实并不是这样,似乎这就是个bug,但是在1.7是正常的,而1.8以上版本全都有这个问题(包括3.0和3.1),最后经过查阅,在一个网站找到的相关的教程,自己折腾后得出该篇文章。
相关文件是加密的,自己浏览博客其它文章,里面分享了解密工具。
2019/09/12补充:
杰奇1.8到杰奇3.1都存在这种问题,因为官方完全放弃了后台采集的继续开发和维护(可能是为了避风头)。另外本篇文章原内容是讲解单篇采集的,目前批量采集已经修复,请看文章最后的补充。
以杰奇2.3版本为例,打开单篇采集相关的/modules/article/admin/collect.php
首先看一段代码,大概在215-226行:
$_REQUEST["articleimage"] = trim($_REQUEST["articleimage"]);
$imgtary = array(1 => ".gif", 2 => ".jpg", 3 => ".jpeg", 4 => ".png", 5 => ".bmp");
if (!empty($_REQUEST["articleimage"])) {
$simage_postfix = strrchr(trim(strtolower($_REQUEST["articleimage"])), ".");
$tmpvar = intval(array_search($simage_postfix, $imgtary));
if (0 < $tmpvar) {
$imgflag = $imgflag | 1;
$imgflag = $imgflag | ($tmpvar * 4);
}
}
在这里,$simage_postfix定义了图片的后缀
但是继续看262-268行
$tmpstr = jieqi_urlcontents($_REQUEST["articleimage"], $colary);
if (!empty($tmpstr)) {
$imagefile = $package->getDir("imagedir") . "/" . $id . "s" . $imagetype;
@jieqi_writefile($imagefile, $tmpstr);
@chmod($imagefile, 511);
}
其中的imagetype根本就不存在定义,但是却处于获取后缀值的位置,这就是个很尴尬的问题,所以后台采集虽然采集到图片,但是图片却没有后缀,于是导致了图片不显示的情况。
那么解决办法就是:
将$imagetype改为$simage_postfix
2019/09/12补充(感谢群内大佬的分享):
对于批量采集,所在的文件是/modules/article/include/updateone.php,找到280行左右
$tmpstr = jieqi_urlcontents($articleimage, $colary);
if (!empty($tmpstr)) {
$imagefile = $package->getDir('imagedir') . '/' . $id . 's' . $imagetype;
@jieqi_writefile($imagefile, $tmpstr);
@chmod($imagefile, 511);
}
还是一样,在这个文件中,$simage_postfix定义了图片的后缀,可是这里出现的是$imagetype,所以解决办法就是把$imagetype改为$simage_postfix。
规则之树版权所有,转载请注明来源,标明作者及原文链接