腾讯云优惠券
呆错附件管理系统预留钩子说明及扩展方法
人气:77 更新:2022-08-21

呆错附件管理系统基于呆错后台管理框架的上传基础组件进行开发,只使用到了呆错上传组件的一个钩子,钩子名称如下,如需使用其它上传钩子,请参考呆错的上传组件。

  • uploadSaveAfter

呆错附件管理系统钩子路径

  • apps\attachment\behavior\Hook.php

呆错附件管理系统钩子原理

  • 通过上传成功后钩子将附件信息保存到数据库,同时支持接收post信息,如果在上传的时候没有提交对应的内容ID,则需要在新增、修改、删除对应的内容ID后对附件表做对应的处理。
  • 安装呆错附件管理系统后会对上传的附件信息追加三个返回字段(id|附件ID,score|附件所需积分,urlId|附件访问链接)

呆错附件管理系统钩子代码

public function uploadSaveAfter(&$params)
{
    if($params["result"]['attachment']){
        $data = [];
        $data['info_parent']      = 0;//内容ID
        $data['info_name']        = $params["result"]['file_name'];
        $data['info_slug']        = $params["result"]['slug'];//sha1/md5
        $data['info_title']       = $params["result"]['old_name'];//原始文件名
        $data['info_excerpt']     = $params["result"]['attachment'];//保存路径
        $data['info_type']        = $params["result"]['ext'];//后缀
        $data['info_order']       = $params["result"]['size'];//文件大小字节
        $data['info_mime_type']   = $params["result"]['type'];//文件类型
        $data['info_user_id']     = DcUserCurrentGetId();//当前用户ID
        $data['attachment_score'] = intval(input('post.score'));//附件积分
        //保存附件信息
        if($infoId = attachmentSave($data)){
            $params['result']['id'] = $infoId;
            $params['result']['score'] = $data['attachment_score'];
            $params['result']['urlId'] = DcUrl('attachment/index/id',['val'=>$infoId]);
        }
    }
}