What should I do if phpcms cannot save remote images?
phpcms v9 can only save remote images of http protocol by default. Of course, you can also set whether to save them yourself. Not sure where to set it? Backend->Content->Model Management->Article Model-Field Management->Content Field-Modify, see the picture below:
Getting back to the subject, there are many now For the sake of security, the website has enabled the https protocol, and the pictures copied from these websites are also https. In this case, phpcms cannot automatically save the remote pictures. Just modify the fillurl function in the phpcms/libs/classes/attachment.class.php file, as follows:
/** * 补全网址 * * @paramstring$surl源地址 * @paramstring$absurl相对地址 * @paramstring$basehref网址 * @returnstring网址 * 增加对远程https协议下图片的本地化保存 */ function fillurl($surl, $absurl, $basehref = '') { if($basehref != '') { $preurl = strtolower(substr($surl,0,6)); if($preurl=='http://' || $preurl=='https://' || $preurl=='ftp://' ||$preurl=='mms://' || $preurl=='rtsp://' || $preurl=='thunde' || $preurl=='emule://'|| $preurl=='ed2k://') return $surl; else return $basehref.'/'.$surl; } $i = 0; $dstr = ''; $pstr = ''; $okurl = ''; $pathStep = 0; $surl = trim($surl); if($surl=='') return ''; $urls = @parse_url(SITE_URL); $HomeUrl = $urls['host']; $BaseUrlPath = $HomeUrl.$urls['path']; $BaseUrlPath = preg_replace("/\/([^\/]*)\.(.*)$/",'/',$BaseUrlPath); $BaseUrlPath = preg_replace("/\/$/",'',$BaseUrlPath); $pos = strpos($surl,'#'); if($pos>0) $surl = substr($surl,0,$pos); if($surl[0]=='/') { $okurl = 'http://'.$HomeUrl.'/'.$surl; } elseif($surl[0] == '.') { if(strlen($surl)<=2) return ''; elseif($surl[0]=='/') { $okurl = 'http://'.$BaseUrlPath.'/'.substr($surl,2,strlen($surl)-2); } else { $urls = explode('/',$surl); foreach($urls as $u) { if($u=="..") $pathStep++; else if($i<count($urls)-1) $dstr .= $urls[$i].'/'; else $dstr .= $urls[$i]; $i++; } $urls = explode('/', $BaseUrlPath); if(count($urls) <= $pathStep) return ''; else { $pstr = 'http://'; for($i=0;$i<count($urls)-$pathStep;$i++) { $pstr .= $urls[$i].'/'; } $okurl = $pstr.$dstr; } } } else { $preurl = strtolower(substr($surl,0,6)); if(strlen($surl)<7) $okurl = 'http://'.$BaseUrlPath.'/'.$surl; elseif($preurl=="http:/" || $preurl=="https:" ||$preurl=='ftp://' ||$preurl=='mms://' || $preurl=="rtsp://" || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/') $okurl = $surl; else $okurl = 'http://'.$BaseUrlPath.'/'.$surl; } $preurl = strtolower(substr($okurl,0,6)); if($preurl=='ftp://' || $preurl=='mms://' || $preurl=='rtsp://' || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/') { return $okurl; } else { $okurl = preg_replace('/^(http:\/\/)/i','',$okurl); $okurl = preg_replace('/^(https:\/\/)/i','',$okurl); $okurl = preg_replace('/\/{1,}/i','/',$okurl); return 'http://'.$okurl; } }
Among them, https is newly added and did not exist before.
PHP Chinese website, a large number of free PHPCMS tutorials, welcome to learn online!
The above is the detailed content of What should I do if phpcms cannot save remote images?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools
