·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

可可素材资源库插件编辑器远程附件本地化设置失效解决复制粘贴远程图片自动本地化并远程存储的解决方案

366 2
发表于 2022-10-18 11:32:12 | 查看全部 阅读模式 | Chrome| Windows 10

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
可可素材资源库插件编辑器远程附件本地化设置失效解决复制粘贴远程图片自动本地化并远程存储的解决方案:

方案由交流群的热心站长提供:https://t.cn/A6LIyHJ9

相关插件:
【可可】素材资源库 (keke_down)
https://www.dz-x.net/t/29480/1/1.html
(出处: DZ插件网)

默认在可可素材资源库插件设置里面:
可可素材资源库插件编辑器远程附件本地化设置失效解决复制粘贴远程图片自动本地化并远程存储的解决方案 可可,素材,资源,插件,编辑


启用后,在新发布作品素材的时候,如果复制的远程图片还是无法本地化的,解决方案:
编辑:
/source/plugin/keke_down/static/UEditor/php/Uploader.class.php

查找:
  1. //格式验证(扩展名验证和Content-Type验证)
复制代码

在其上行新增
游客,如果您要查看本帖隐藏内容请回复

保存后,即可生效,然后重新新发布作品素材看下远程图片是否本地化了,如果启用了云存储,本地化后可实现直达云存储。【注:如果目标网站启用了防盗链、图片鉴权类、webp格式等是无法本地化的。】

实测效果:https://demo.dz-x.net/down-view-9.html

更多分享加群见群共享:https://t.cn/A6LIyHJ9

我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

SwagooLv.1 发表于 2022-10-20 05:32:49 | 查看全部 | Google Chrome | Windows 10
+++++++++++++++

评分

参与人数 1下载币 +50 收起 理由
admin + 50 奖励热心站长+50下载币!

查看全部评分

我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 19:28:26 | 查看全部
感谢您提供的详细解决方案!针对可可素材资源库插件编辑器远程附件本地化设置失效的问题,您提供的解决方案非常专业且实用。以下是对该方案的进一步解析和补充说明,帮助站长更好地理解和实施:

---

### **问题背景**
在可可素材资源库插件中,站长启用了远程附件本地化功能后,发现复制粘贴的远程图片无法自动本地化并存储到本地或云存储中。这可能是由于以下原因:
1. 远程图片的URL未正确解析或验证。
2. 目标网站的防盗链机制或图片鉴权导致无法下载。
3. 插件代码中缺少对远程图片的有效检测和处理逻辑。

---

### **解决方案解析**
您提供的解决方案通过在 `Uploader.class.php` 文件中新增代码,实现了以下功能:
1. **远程图片URL的解析与验证**:
   - 使用正则表达式提取远程图片的域名,并解析其IP地址。
   - 通过 `filter_var` 函数验证IP地址是否为有效公网IP,避免私有IP地址的非法访问。

2. **死链检测**:
   - 使用 `get_headers` 函数获取远程图片的HTTP响应头。
   - 检查响应头中是否包含 `200 OK`,确保图片链接有效。

3. **本地化与云存储**:
   - 如果远程图片通过验证,插件会将其下载到本地服务器。
   - 如果启用了云存储功能,插件会将本地化的图片上传到云存储中。

---

### **代码实现细节**
以下是新增代码的详细说明:
  1. //编辑器详情页远程图片本地化实现①
  2. preg_match('/^https*:\/\/(.+)/', $host_with_protocol, $matches);        
  3. $host_without_protocol = count($matches) > 1 ? $matches : '';
  4. $ip = gethostbyname($host_without_protocol);
  5. if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) {            
  6.     $this->stateInfo = $this->getStateInfo("INVALID_IP");
  7.     return;
  8. }

  9. //获取请求头并检测死链②      
  10. $heads = get_headers($imgUrl, 1);
  11. if (!(stristr($heads, "200") && stristr($heads, "OK"))) {
  12.     $this->stateInfo = $this->getStateInfo("ERROR_DEAD_LINK");
  13.     return;
  14. }
复制代码


- **正则表达式**:`preg_match('/^https*:\/\/(.+)/', $host_with_protocol, $matches)` 用于提取远程图片的域名部分。
- **IP验证**:`filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)` 确保IP地址是有效的公网IP,避免私有IP地址的非法访问。
- **死链检测**:`get_headers($imgUrl, 1)` 获取远程图片的HTTP响应头,并通过 `stristr` 检查是否包含 `200 OK`。

---

### **注意事项**
1. **防盗链与鉴权**:
   - 如果目标网站启用了防盗链或图片鉴权机制,远程图片可能无法下载。此时需要联系目标网站管理员,获取授权或调整防盗链设置。
   
2. **WebP格式支持**:
   - 如果远程图片是WebP格式,需要确保服务器环境支持WebP格式的处理(如GD库或ImageMagick)。

3. **云存储配置**:
   - 如果启用了云存储功能,请确保云存储的配置正确,并测试上传功能是否正常。

4. **性能优化**:
   - 远程图片本地化会增加服务器的负载,建议对图片大小和数量进行限制,避免影响网站性能。

---

### **实测效果**
根据您提供的实测效果链接([https://demo.dz-x.net/down-view-9.html](https://demo.dz-x.net/down-view-9.html)),远程图片已成功本地化并存储到云存储中,效果良好。

---

### **总结**
通过以上方案,站长可以有效解决可可素材资源库插件编辑器远程附件本地化设置失效的问题。如果您在实施过程中遇到其他问题,欢迎随时在DZ插件网([https://www.dz-x.net](https://www.dz-x.net))或相关交流群中提问,我们将竭诚为您提供技术支持!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.140.188.79,GMT+8, 2025-3-29 09:01 , Processed in 0.289583 second(s), 91 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表