XiunoBBS 七牛上传插件

   这几天抽着闲暇时间搞了一个bbs,刚开始本来想用discuz,无奈界面太丑,漏洞也多,之前在gitee上发现过一个不错对的开源轻论坛框架xiunobbs,就拿它来搞了。二次开发过程中有一个需求,我想把附件传到七牛,不保存在服务器上,这样能节省服务器带宽,xiuno插件市场提供了一个免费插件,但是可能跟版本相关,已经不能用了,所以就自己弄了一个,今天就免费分享给大家。

安装方式是首先把插件adam_qiniu拖放到plugins文件夹下,然后登陆xiuno后台插件,本地插件,安装即可,在设置里面设置上七牛云的ak,sk,附件上传地址,bucket即可。

白俊遥博客

安装后上传的附件,不会再保存在upload目录下,上传到七牛后,会自动删除本地文件,这里有一个问题,附件下载的时候会寻找本地文件,没有的话会报attach_not_exist错误,然而本地附件已经被删除了,所以这里需要屏蔽到这块逻辑,在route/attach.php文件下大概131行,备注掉如下代码 :

//!is_file($attachpath)AND message(-1, lang('attach_not_exists'));

在model/attach.func.php文件插入 

// hook attach_assoc_post_middle.php

源码上下文这样:

// 插入后,进行关联
$aid = attach_create($arr);
         // hook attach_assoc_post_middle.php
$post['message'] = str_replace($file['url'], $desturl, $post['message']);
$post['message_fmt'] = str_replace($file['url'], $desturl, $post['message_fmt']);


本来想用hook方式解决这个问题,但是由于本人对框架还不是很熟悉,没有找到好的hook方式。

总结一下安装和配置步骤:

  1. 安装adam_qiniu

  2. 配置ak,sk,上传url,bucket

  3. 备注掉 route/attach.php 131行代码 

  4. model/attach.func.php 234行插入  // hook attach_assoc_post_middle.php 



如果想恢复本地存储,卸载插件,然后取消上面备注掉的代码即可

下载地址:


https://github.com/adamin1990/adam_qiniu


https://gitee.com/adamin/adam_qiniu



PS:关于安装插件后无法卸载问题,取消备注 view/js/bbs.js第124行  

//window.location = jthis.attr('href');



  • Powered by bjyblog modified by Adam © 2014-2020 www.lixiaopeng.com 版权所有 ICP证:鲁ICP备15039297号
  • 联系邮箱:14846869@qq.com