用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5859|回复: 4
收起左侧

[上传/下载] 使用富文本编辑器如kindeditor时,让附件表绑定文章ID的思路

[复制链接]
发表于 2012-3-28 21:29:38 | 显示全部楼层 |阅读模式
本帖最后由 loveinlove 于 2012-3-28 21:35 编辑

原本一直使用swfupload上传插件。一般用它的我处理方法都是上传后,在文章发布页面插入节点 input 如
HTML复制代码
<input type="hidden" value = "附件id">
复制代码


如此提交文章时,一并关联文章与附件。保持一致性。方便删除文章时,同时删除掉附件。


    最近一个项目,直接用了编辑器自带的上传模块。本人小小的外观控,美工能力又不好,只能选择现有模版比较漂亮的一款编辑器,最后选择使用kindeditor.

    一开始同样是按照我一贯方法进行二次扩展。但在修改的过程中发现比较繁琐,通过kindeditor上传后触发节点添加的同时,还需要将附件id进行传值到前台,这样对kindeditor扩展并不方便,kindeditor回传限制为 json{'error':'0','message':'url'},相比起来可能自己写个kindeditor的上传插件会更快。所以放弃的该一贯方式。

    为追求方便,一直在寻找最简便的方法,未果,比较丧气。后来在处理用户权限时,突然想到给我也可以给附件与文章一个对应权限不就行了。so,整理思路。在发布页创立时,同时给予一个密钥。上传文件时将此密钥保存到附件表,当文章发布后,寻找有相同密钥的附件,update 关联。

以下是部分代码
1,在控制器部分,每次都会随机出一个 upload_token
PHP复制代码
 
$this->_data['upload_token'] = substr(md5(rand(10,99).now().rand(1,10)),0,15);
 
复制代码


2,在view页,考虑到方便,开启了ci的表单验证,防止回填时会生成新的 token 还需要进行保护。

a,表单部分
HTML复制代码
 
<input type = "hidden" name="upload_token" value = "<?php echo set_value('upload_token',$upload_token);?>">
 
复制代码


b,kindeditor 配置部分
JS复制代码
 
var options = {
    uploadJson : '<?php echo site_url('admin/upload/')?>?&upload_token=<?php echo set_value('upload_token',$upload_token);?>',
    allowFileManager : false,
};
 
复制代码



如此,附件一上传,在附件控制页进行$this->input->get('upload_token',TRUE)处理,让upload_token入库。当文章提交时,后台再将与文章的upload_token相同的附件关联文章id.


方法有千千万,也许这也不是什么好思路,也许只是我孤陋寡闻。我只是想分享与大家。

发表于 2012-3-28 22:34:44 | 显示全部楼层
分享就是好事。感谢LZ
发表于 2012-3-29 13:36:09 | 显示全部楼层
本帖最后由 lazybat 于 2012-3-29 13:40 编辑

对于kindeditor,在上传后会有回调函数可以设定,就无需这么麻烦了
JS复制代码
 
K.create('textarea[id="text_edit"]', {
                    allowFileManager : true,
                    afterUpload :function(jsondata){
                           insert_to_db(jsondata.attachmentinfo,current_articleid); //例子,jsondata是后台代码上传成功后的返回值。    
                   }
                    })
 
 
复制代码

 楼主| 发表于 2012-3-30 21:49:19 | 显示全部楼层
受教了。 原来还能如此回调。

暂时不想测试了。 我这方法其实算起来也不算烦。还省去前端小开销,呵呵。
后端处理与仅需update一个键值。

发表于 2012-12-6 15:22:53 | 显示全部楼层
求富文本编辑器在php中怎么使用,本人新手啊

本版积分规则