Discuz支持遠程附件,是很好的功能,能夠減輕web服務器壓力,但是,卻也有一個比較頭疼的問題。那就是當前臺DIY調用和裁切功能的時候,卻發(fā)現(xiàn)裁切以后的圖片,只能保存在本地,而不能重新更新到FTP服務器上,這個功能讓很多圖片看起來都扭曲、模糊,極大的影響了用戶體驗。
不管是曾經(jīng)的Discuz X2, Discuz X2.5還是最新的X3,都沒有能及時解決這個問題,我們只好自己動手解決。:)
經(jīng)過幾天的研究,玩改車技術團隊(wangaiche.com)終于找到了一種修改比較簡單的方式,具體如下:
找到文件:
/source/module/misc/misc_imgcropper.php
找到文件尾部:- $image->Cropper($image->target, $cropfile, $cutwidth, $cutheight, $left, $top);
- showmessage('do_success', dreferer(), array('icurl' => $cropfile), array('showdialog' => true, 'closetime' => true));
復制代碼 修改為:- $image->Cropper($image->target, $cropfile, $cutwidth, $cutheight, $left, $top);
- //BEGIN
- //默認情況下,裁切圖片只是保存在本地的,而由于block的更新代碼,在判斷縮略圖標記為是的情況下是不更新到附件ftp上的;
- //這里,我們就需要在裁切保存以后,把圖片更新到附件FTP上,裁切才會有效果;由玩改車技術團隊修改(wangaiche.com);20130703;
- if ($_G['setting']['ftp']['on']) {
- $ftp = &discuz_ftp::instance();
- $ftp -> connect();
- if ($ftp -> connectid) {
- $ftp -> upload($_G['setting']['attachurl'].$cropfile, $cropfile);
- }
- }
- //END
- showmessage('do_success', dreferer(), array('icurl' => $cropfile), array('showdialog' => true, 'closetime' => true));
復制代碼 這樣的話,在開啟了遠程附件以后,裁切圖片的時候,新的圖片縮略圖就會保存到服務器上了。由于之前的圖片縮略圖也是存在的關系,新的圖片只是覆蓋了原來的縮略圖,所以,想要及時看到效果,需要清空一下瀏覽器緩存,也可以到ftp服務器上查看,看看是否更新了上去。
本文由玩改車(wangaiche.com)技術團隊原創(chuàng),轉載請注明來源。
|