这几天抽着闲暇时间搞了一个bbs,刚开始本来想用discuz,无奈界面太丑,漏洞也多,之前在gitee上发现过一个不错对的开源轻论坛框架xiunobbs,就拿它来搞了。二次开发过程中有一个需求,我想把附件传到七牛,不保存在服务器上,这样能节省服务器带宽,xiuno插件市场提供了一个免费插件,但是可能跟版本相关,已经不能用了,所以就自己弄了一个,今天就免费分享给大家。 安装方式是首先把插件adam_qiniu拖放到plugins文件夹下,然后登陆xiuno后台插件,本地插件,安装即可,在设置里面设置上七牛云的ak,sk,附件上传地址,bucket即可。
安装后上传的附件,不会再保存在upload目录下,上传到七牛后,会自动删除本地文件,这里有一个问题,附件下载的时候会寻找本地文件,没有的话会报attach_not_exist错误,然而本地附件已经被删除了,所以这里需要屏蔽到这块逻辑,在route/attach.php文件下大概131行,备注掉如下代码 :
[tr=none ] | //!is_file($attachpath)AND message(-1, lang('attach_not_exists'));
| [/tr]
在model/attach.func.php文件插入
[tr=none ] | // hook attach_assoc_post_middle.php
| [/tr]
源码上下文这样:
[tr=none ] | // 插入后,进行关联
$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']);
| [/tr]
本来想用hook方式解决这个问题,但是由于本人对框架还不是很熟悉,没有找到好的hook方式。
总结一下安装和配置步骤:
安装adam_qiniu
配置ak,sk,上传url,bucket
备注掉 route/attach.php 131行代码
model/attach.func.php 234行插入 // hook attach_assoc_post_middle.php
如果想恢复本地存储,卸载插件,然后取消上面备注掉的代码即可
下载地址:
PS:关于安装插件后无法卸载问题,取消备注 view/js/bbs.js第124行
//window.location = jthis.attr('href');
历史资源提醒--必看
该页面资源/教程来自原魔趣吧历史资源转移,因发布历史久远,部分资源/教程可能已失效或无法在最新版程序中安装使用!DZ资源建议在Discuz3.4及以下版本使用,PHP版本建议5.6。资源仅提供做代码研究学习使用!
因改版,部分贴内链接将无法正常跳转,如链接失效或未正常跳转,请利用站内搜索功能搜索资源名称获取对应资源!