杰奇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。

 

本文由网友投稿或「聚码源码网」整理自网络,如转载请注明出处:https://www.jumaniu.com/14049/

本站发布的内容若侵犯到您的权益,请邮件联系 zhangqy2022#yeah.net 删除,我们将及时处理!

从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!

本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。

本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。

若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。

常见问题
  • 本站所有资源解压密码为:www.jumaniu.com 或 www.tdji.cn
查看详情

相关文章

评论
暂无评论