|
本帖最后由 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
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.
方法有千千万,也许这也不是什么好思路,也许只是我孤陋寡闻。我只是想分享与大家。
|
|