php,function check_remote_image($url) {, $headers = @get_headers($url);, if ($headers && strpos($headers[0], '200') !== false) {, return true;, } else {, echo "alert('远程图片下载失败,请检查图片链接是否正确!');";, return false;, },},
`,,在上传图片的函数中调用
check_remote_image()函数,传入图片URL作为参数。如果返回
true,则继续执行后续操作;如果返回
false`,则弹出提示框告知用户远程图片下载失败。基础设置和代码修改
在DedeCMS中,下载远程图片的功能是一个重要的功能,由于各种原因,有时候这一功能可能会失效,为了解决这一问题,可以采取以下步骤:
1、基础设置:首先确保“下载远程图片和资源”选项被勾选,并且图片文件夹uploads/allimg存在且具有写入权限。
2、代码修改:由于HTTPS协议的普及,需要修改DedeCMS的代码以支持HTTP和HTTPS协议的图片下载,具体操作如下:
打开DedeCMS后台根目录(默认为dede)的下的inc/inc_archives_function.php文件。
将大约117行代码从:preg_match_all("/src=["|'|s]{0,}(http://([^>]*).(gif|jpg|png))/isU",$body,$img_array);
修改为:preg_match_all("/src=["|'|s]{0,}((http|https)://([^>]*).(gif|jpg|png))/isU",$body,$img_array);
。
注释大约169行代码,将其从://$rs = $htd>SaveToBin($rndFileName);
修改为:
$image = file_get_contents($value); $rs = file_put_contents($rndFileName, $image);
完成以上修改后,重新编辑文章并保存,会发现文章中的图片已经下载到本地并修改成本地路径。
添加提醒功能
为了在下载远程图片失败时提醒用户,可以在DedeCMS中添加一个简单的提醒功能,具体操作如下:
1、打开DedeCMS后台根目录(默认为dede)的下的inc/inc_archives_functions.php文件。
2、找到以下代码:
$body = str_replace($value, $fileurl, $body); @WaterImg($rndFileName, ‘down’);
3、在该代码后面添加以下代码:
else{ ShowMsg("远程图片下载失败!","1"); exit; }
4、如果希望在提示下载失败时显示编辑器里面的内容,可以这样修改代码:
else{ ShowMsg("远程图片下载失败!请复制以下代码:<br><textarea>". $body ."</textarea>","1","",36000); }
相关FAQs
问题一:为什么DedeCMS无法下载某些网站的远程图片?
答:这可能是由于对方服务器设置了防采集措施,导致无法下载远程图片。
问题二:如何在DedeCMS中快速发布大量图片的文章?
答:可以尝试去掉“下载远程图片和资源”和“提取第一个图片为缩略图”的默认勾选,这样可以加快文章的发布速度。
问题三:如何检查DedeCMS的图片上传目录是否存在且具有写入权限?
答:可以通过FTP或其他文件管理工具检查网站目录,确保uploads/allimg这个文件夹存在并具有写入权限,如果更改了图片上传目录,也需要检查相应的目录。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1201342.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复