額 dedecms很坑爹的 昨天我寫(xiě)了一篇不能提取縮略圖之后發(fā)現(xiàn)還有點(diǎn)問(wèn)題
后來(lái)又繼續(xù)找,現(xiàn)在才找到問(wèn)題
在dede/inc/inc_archives_functions.php的第505行
if($GLOBALS[‘cfg_ddimg_full’]==‘Y’)@ImageResizeNew($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
else@ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
if(!is_file($cfg_basedir.$litpic))$litpic=”;
這里調(diào)用了@ImageResize函數(shù)對(duì)圖片進(jìn)行縮小,并將縮小的圖片另存為$litpic。但實(shí)際上ImageResize函數(shù)會(huì)再對(duì)圖片縮小的尺寸進(jìn)行判斷,如果原圖已經(jīng)小于目標(biāo)尺寸,則不進(jìn)行縮放直接返回。導(dǎo)致并未進(jìn)行另存為$litpic的操作。如此一來(lái)$litpic的文件并未生成,根據(jù)上述代碼的最后一行,自然就返回空值。
因此,解決辦法有二:
一是在系統(tǒng)基本參數(shù)-附件設(shè)置中將縮略圖的寬度跟高度都設(shè)為一個(gè)較小的值,以確保大部分的圖片都會(huì)進(jìn)行縮小。
二是把上述最后一行改為
if(!is_file($cfg_basedir.$litpic))$litpic=$oldpic;
意思就是如果不存在縮略圖文件,則返回原圖作為縮略圖。
基本就可以解決問(wèn)題了
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: dedecms5.7 不能自動(dòng)提取第一張圖片為縮略圖 最實(shí)用的解決方案