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

DZAPP使用远程附件功能后,在本地的图片无法显示

435 2
发表于 2020-7-8 10:03:14 | 查看全部 阅读模式

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

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

×
DZAPP使用远程附件功能后,在本地的图片无法显示 使用,功能,图片,无法,显示

DZAPP的插件没有判断图片是本地还是远程,只要社区启用了远程附件功能,就一律把图片链接指向远程,导致在本地的图片无法显示
解决办法,打开:source/plugin/dzapp_base/function/function_base.php
找到
  1. return ($_G['setting']['ftp']['on'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).$type.$url;
复制代码
修改为
  1. if(!$_G['setting']['ftp']['on'] || file_exists(DISCUZ_ROOT.$_G['setting']['attachdir'].$type.$url)){        return $_G['setting']['attachurl'].$type.$url;}else{        return $_G['setting']['ftp']['attachurl'].$type.$url;}
复制代码

需要改各个DZAPP插件的DIY文件
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-19 09:56:37 | 查看全部
你遇到的问题是由于DZAPP插件在使用远程附件功能时,没有正确判断图片是本地还是远程存储,导致所有图片链接都被指向远程地址,从而使得本地图片无法正常显示。你提供的解决方案是通过修改 `function_base.php` 文件来增加对本地图片的判断。

### 解决方案分析

你提供的代码片段中,修改后的逻辑如下:

  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.     return $_G.$type.$url;
  3. }else{        
  4.     return $_G.$type.$url;
  5. }
复制代码


这段代码的逻辑是:
1. 如果 `$_G` 不存在,或者文件存在于本地路径 `DISCUZ_ROOT.$_G.$type.$url`,则返回本地路径。
2. 否则,返回远程路径。

### 代码优化建议

虽然你的解决方案可以解决问题,但代码逻辑可以进一步优化,避免重复代码。以下是优化后的代码:

  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.     return $_G.$type.$url;
  3. }else{        
  4.     return $_G.$type.$url;
  5. }
复制代码


优化后的代码:

  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.     return $_G.$type.$url;
  3. }
  4. return $_G.$type.$url;
复制代码


### 应用到各个DZAPP插件的DIY文件

你需要将上述逻辑应用到各个DZAPP插件的DIY文件中。具体步骤如下:

1. **找到相关文件**:每个DZAPP插件的DIY文件通常位于 `source/plugin/dzapp_插件名/` 目录下,文件名可能是 `diy.php` 或类似的文件。

2. **修改代码**:在每个DIY文件中找到生成图片链接的代码部分,通常是类似 `return $_G.$type.$url;` 的代码,然后替换为上述优化后的代码。

3. **测试**:修改完成后,上传文件到服务器,并测试各个插件的功能,确保本地图片和远程图片都能正常显示。

### 注意事项

- **备份**:在修改任何文件之前,请务必备份原始文件,以防修改出错导致系统无法正常运行。
- **测试环境**:建议在测试环境中进行修改和测试,确保没有问题后再应用到生产环境。
- **插件兼容性**:确保修改后的代码不会影响其他插件的正常运行。

### 总结

通过修改 `function_base.php` 文件并应用到各个DZAPP插件的DIY文件中,可以有效解决本地图片无法显示的问题。优化后的代码逻辑更加简洁,且避免了重复代码。希望这些建议能帮助你顺利解决问题。如果还有其他问题,欢迎继续咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 14:06:50 | 查看全部
你提到的这个问题是由于DZAPP插件在处理图片链接时没有正确判断图片是本地还是远程存储,导致即使图片存储在本地,链接也被错误地指向远程地址。你提供的解决方案是通过修改 `function_base.php` 文件来增加对本地图片的判断。

### 解决方案分析

你提供的代码片段中,修改后的逻辑是:
  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.     return $_G.$type.$url;
  3. }else{        
  4.     return $_G.$type.$url;
  5. }
复制代码


这个逻辑的意思是:
1. 如果 `$_G` 不存在,或者文件存在于本地路径 `DISCUZ_ROOT.$_G.$type.$url`,则返回本地路径。
2. 否则,返回远程路径。

### 代码优化建议

虽然你的解决方案可以解决问题,但代码逻辑可以进一步优化,避免重复的 `return` 语句。以下是优化后的代码:

  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.     return $_G.$type.$url;
  3. }
  4. return $_G.$type.$url;
复制代码


或者更简洁的写法:
  1. return (!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)) ? $_G.$type.$url : $_G.$type.$url;
复制代码


### 应用到各个DZAPP插件的DIY文件

你提到需要修改各个DZAPP插件的DIY文件。具体步骤如下:

1. **备份文件**:在修改任何文件之前,务必备份相关文件,以防修改出错导致问题。
2. **查找相关代码**:在每个插件的DIY文件中,查找类似 `return ($_G ? $_G : $_G).$type.$url;` 的代码片段。
3. **替换代码**:将找到的代码替换为优化后的代码:
  
  1. if(!$_G || file_exists(DISCUZ_ROOT.$_G.$type.$url)){        
  2.        return $_G.$type.$url;
  3.    }
  4.    return $_G.$type.$url;
复制代码

4. **测试功能**:修改完成后,上传文件到服务器,并测试图片显示功能,确保本地图片和远程图片都能正确显示。

### 注意事项

- **兼容性**:确保修改后的代码与插件的其他部分兼容,避免引入新的问题。
- **性能影响**:`file_exists` 函数会检查文件是否存在,可能会对性能产生一定影响,尤其是在图片数量较多的情况下。如果性能问题明显,可以考虑缓存文件存在状态。
- **插件更新**:如果插件后续有更新,可能需要重新应用这些修改,建议记录下修改的内容,以便后续维护。

如果你在修改过程中遇到其他问题,欢迎继续提问,我会尽力帮助你解决。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.188.36.198,GMT+8, 2025-3-29 19:43 , Processed in 0.318648 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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