Config.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class Config extends Model
  5. {
  6. // 表名,不含前缀
  7. protected $name = 'config';
  8. // 自动写入时间戳字段
  9. protected $autoWriteTimestamp = false;
  10. // 定义时间戳字段名
  11. protected $createTime = false;
  12. protected $updateTime = false;
  13. // 追加属性
  14. protected $append = [
  15. ];
  16. /**
  17. * 读取配置类型
  18. * @return array
  19. */
  20. public static function getTypeList()
  21. {
  22. $typeList = [
  23. 'string' => __('String'),
  24. 'text' => __('Text'),
  25. 'number' => __('Number'),
  26. 'datetime' => __('Datetime'),
  27. 'select' => __('Select'),
  28. 'selects' => __('Selects'),
  29. 'image' => __('Image'),
  30. 'images' => __('Images'),
  31. 'file' => __('File'),
  32. 'files' => __('Files'),
  33. 'checkbox' => __('Checkbox'),
  34. 'radio' => __('Radio'),
  35. 'array' => __('Array'),
  36. ];
  37. return $typeList;
  38. }
  39. /**
  40. * 读取分类分组列表
  41. * @return array
  42. */
  43. public static function getGroupList()
  44. {
  45. $groupList = config('site.configgroup');
  46. return $groupList;
  47. }
  48. /**
  49. * 加载上传配置
  50. *
  51. * @param array $params 扩展参数,常用字段savekey,mimetype,maxsize,ext-param,notify-url,return-url<br>
  52. * 更多字段可参考http://docs.upyun.com/api/form_api/#_2
  53. *
  54. * @return array
  55. */
  56. public static function upload($params = [])
  57. {
  58. $uploadcfg = config('upload');
  59. $uploadcfg = $uploadcfg ? $uploadcfg : [];
  60. $uploadcfg = array_merge($uploadcfg, $params);
  61. $uploadcfg['bucket'] = isset($uploadcfg['bucket']) ? $uploadcfg['bucket'] : '';
  62. $multiple = isset($uploadcfg['multiple']) ? $uploadcfg['multiple'] : false;
  63. $savekey = isset($uploadcfg['savekey']) ? $uploadcfg['savekey'] : '';
  64. $uploadcfg['save-key'] = isset($uploadcfg['save-key']) ? $uploadcfg['save-key'] : $savekey;
  65. $expiration = time() + (isset($uploadcfg['expire']) ? $uploadcfg['expire'] : 600);
  66. $uploadcfg['expiration'] = isset($uploadcfg['expiration']) ? $uploadcfg['expiration'] : $expiration;
  67. $notifyurl = isset($uploadcfg['notifyurl']) ? $uploadcfg['notifyurl'] : '';
  68. $returnurl = isset($uploadcfg['returnurl']) ? $uploadcfg['returnurl'] : '';
  69. if ($notifyurl)
  70. $uploadcfg['notify-url'] = $notifyurl;
  71. else
  72. unset($uploadcfg['notify-url']);
  73. if ($returnurl)
  74. $uploadcfg['return-url'] = $returnurl;
  75. else
  76. unset($uploadcfg['return-url']);
  77. //设置允许的附加字段
  78. $allowfields = [
  79. 'bucket', 'save-key', 'expiration', 'date', 'content-md5', 'notify-url', 'return-url', 'content-secret', 'content-type', 'allow-file-type', 'content-length-range',
  80. 'image-width-range', 'image-height-range', 'x-gmkerl-thumb', 'x-gmkerl-type', 'apps', 'b64encoded', 'ext-param'
  81. ];
  82. $params = array_intersect_key($uploadcfg, array_flip($allowfields));
  83. $policy = base64_encode(json_encode($params));
  84. $signature = md5($policy . '&' . (isset($uploadcfg['formkey']) ? $uploadcfg['formkey'] : ''));
  85. $multipart = [
  86. 'policy' => $policy,
  87. 'signature' => $signature,
  88. ];
  89. $multipart = array_merge($multipart, $params);
  90. return [
  91. 'cdnurl' => isset($uploadcfg['cdnurl']) ? $uploadcfg['cdnurl'] : '',
  92. 'uploadurl' => isset($uploadcfg['uploadurl']) ? $uploadcfg['uploadurl'] : url('ajax/upload'),
  93. 'bucket' => $uploadcfg['bucket'],
  94. 'maxsize' => isset($uploadcfg['maxsize']) ? $uploadcfg['maxsize'] : '',
  95. 'mimetype' => isset($uploadcfg['mimetype']) ? $uploadcfg['mimetype'] : '',
  96. 'multipart' => $multipart,
  97. 'multiple' => $multiple,
  98. ];
  99. }
  100. }