⚠️
Browser compatibility
Your browser may be outdated and some features may not work. We recommend upgrading or using a modern browser.

imgtoc-discuz-plugin-功能与特点说明

imgtoc 图片图床(Discuz! 插件)功能与特点说明

面向站长、技术人员:实现原理、后台能力、配置与依赖。
插件路径:dz3.5/source/plugin/imgtoc/
版本以 discuz_plugin_imgtoc.xmlversion 为准(当前 2.0)。


一、产品定位

imgtoc 图片图床用于 Discuz! X 系列论坛,在发帖/回复时将图片上传到独立的 ImgToC 图床,获得可外链的直链地址。适合需要 CDN 加速、图片直链 的场景(如外贸站、独立站、店铺描述图等)。

  • 插件标识imgtoc
  • 兼容版本:XML 标注 X2~X3.5,包内以 X3.5 为主
  • 版权:imgtoc.com

二、核心功能

1. 发帖编辑器集成

  • 钩子 post_editorctrl_left:在编辑器左侧增加图床上传按钮(图标、鼠标提示可在后台配置)。
  • 用户组权限:仅被选中的用户组可使用图床。
  • 可选:隐藏系统自带「附件」上传、隐藏系统自带「图片」上传。
    1.png

2.png

2. 弹窗上传与「我的图片」

  • file_box + upload:弹窗内选择/拖拽图片上传;分片参数与远端 /api/upload/config 等对接。
  • 上传流程经 plugin.php?id=imgtoc:upload_api 代理:config / init / chunk / merge
  • 用户可查看与当前论坛 UID 关联的远端图片列表(itc_act=my_images,对接 api-discuz-list)。
    3.png

3. 服务端代理与安全

  • X-API-Key 不输出到浏览器,由 PHP cURL 转发;校验 formhash
  • 对 JSON 体大小、task_idchunk_index、远程 file_id 等做校验与消毒。
  • HTTPS 可选 是否校验 SSL 证书imgtoc_ssl_verify),便于调试;生产建议开启。
  • merge 成功后写入 imgtoc_upload_log,供后台报表使用。

4. 管理后台:文件管理(adm_files

4.png
代理调用 ImgToC 的 Discuz 专用接口(均需有效 API 密钥):

能力 说明
列表 api-discuz-list:分页、关键词、排序、文件夹、文件类型等
文件夹 api-discuz-folders
删除 api-discuz-deleteapi-discuz-batch-delete

列表数据会补充 Discuz 附件类型图标等展示字段。若远端未部署对应 act,可能返回「未知的 API 操作」;插件内对错误文案有引导(需指向已升级的本站 ImgToC)。

5. 管理后台:报表统计(adm_stat

5.png

  • 数据源:本地表 imgtoc_upload_log,仅统计经本插件代理且 合并成功 的上传。
  • 近 7 天 / 30 天维度,Chart.js 图表(次数、占用空间等,以模板为准)。
  • 支持按用户筛选(若界面提供)。

6. 管理后台:公告与版本

  • imgtoc_admin_notice_feed:服务端请求 phpdisk.com 公告/版本接口,避免浏览器跨域;与业务图床 API 基址无关。

三、主要配置项

变量 说明
imgtoc_api_base ImgToC 站点根地址(无末尾斜杠),须含 api-discuz-list 等接口的版本
imgtoc_key X-API-Key,在图床用户中心生成
imgtoc_ssl_verify cURL 是否校验 SSL 证书
imgtoc_title 发帖页图床按钮提示文字
hide_attach / hide_image 是否隐藏系统附件/图片上传
use_disk_gid 可使用图床的用户组

四、技术特点摘要

  1. 密钥仅服务端使用,降低泄露与浏览器跨域白名单负担。
  2. 分片上传 + 可配置超时,适配较大文件与弱网。
  3. formhash、HTTP 401/403 等有明确错误提示。
  4. PHP ≥ 5.6commons.inc.php),需 cURL 访问远端。

五、数据库

  • imgtoc_upload_loglog_iduidusernamefile_sizedatelineremote_file_idfile_name 等;安装/升级脚本创建或维护。升级脚本可能删除历史 itc_* 表并重建本表(以 upgrade.php 为准)。

六、配套依赖

必须部署 实现上述 API 的 ImgToC 图床程序;站点地址与密钥需与图床后台「API 接入」一致。若仅指向未含 Discuz 列表接口的演示站,后台文件管理将不可用。


文档随仓库代码更新,如有出入以源码为准。

0%