織夢dedecms5.7不能自動提取第一張圖片為縮略圖
導讀:織夢教程織夢教程網上好像很多人都有這樣的問題,剛剛開始可以,后來就不行了 百度了好幾頁 各種改法,各種嘗試,后來其實只要改一句代碼就可以了 可能是因為服務器上禁用了fsockodede手機模板dede后臺模板。
網上好像很多人都有這樣的問題,剛剛開始可以,后來就不行了
百度了好幾頁
各種改法,各種嘗試,后來其實只要改一句代碼就可以了
可能是因為服務器上禁用了fsockopen() 函數造成的,在用fsockopen()的地方用 stream_socket_client()代替就可以了。
具體修改地方是 /include/dedehttpdown.class.php 第507行
$this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $errstr,10); 替換為 $this->m_fp = @stream_socket_client($this->m_host . ‘:’ . $this->m_port, $errno, $errstr,10);
后來發現可能還有點問題
如果大家做了上面的操作還不行 可以參考織夢模板下面在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_dede織夢模板basedir.$litpic);
if(!is_file($cfg_basedir.$litpic)) $litpic = ”;
這里調用了@ImageResize函數對圖片進行縮小,并將縮小的圖片另存為$litpic。但實際上ImageResize函數會再對圖片縮小 的尺寸進行判斷,如果原圖已經小于目標尺寸,則不進行縮放直接返回。導致并未進行另存為$litpic的操作。如此一來$litpic的文件并未生成,根 據上述代碼的最后一行,自然就返回空值。
因此,解決辦法有二:
一是在系統基本參數-附件設置中將織夢模板免費下裁縮略圖的寬度跟高度都設為一個較小的值,以確保大部分的圖片都會進行縮小。
二是把上述最后一行改為
if(!is_file($cfg_basedir.$litpic)) $litpic = $oldpic;
意思就是如果不存在縮略圖文件,則返回原圖作為縮略圖。
基本就可以解決問題了
相關dede手機模板dede后臺模板。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-19 ,文章織夢dedecms5.7不能自動提取第一張圖片為縮略圖主要講述第一張,最有效,織夢網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_30043.html