POST TIME:2021-05-21 00:08
額 dedecms很坑爹的 昨天我寫了一篇不能提取縮略圖之后發現還有點問題
后來又繼續找,現在才找到問題
在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=”;
這里調用了@ImageResize函數對圖片進行縮小,并將縮小的圖片另存為$litpic。但實際上ImageResize函數會再對圖片縮小的尺寸進行判斷,如果原圖已經小于目標尺寸,則不進行縮放直接返回。導致并未進行另存為$litpic的操作。如此一來$litpic的文件并未生成,根據上述代碼的最后一行,自然就返回空值。
因此,解決辦法有二:
一是在系統基本參數-附件設置中將縮略圖的寬度跟高度都設為一個較小的值,以確保大部分的圖片都會進行縮小。
二是把上述最后一行改為
if(!is_file($cfg_basedir.$litpic))$litpic=$oldpic;
意思就是如果不存在縮略圖文件,則返回原圖作為縮略圖。
基本就可以解決問題了