📄 正在查看:admin/control/attach_control.class.php
1<?php
2/**
3 * (C)2012-2014 twcms.com TongWang Inc.
4 * Author: wuzhaohuan <kongphp@gmail.com>
5 */
6
7defined('TWCMS_PATH') or exit;
8
9class attach_control extends admin_control {
10 // 上传图集和缩略图
11 public function upload_image() {
12 // hook admin_attach_control_upload_image_before.php
13
14 $type = R('type');
15 $mid = max(2, (int)R('mid'));
16 $cid = (int)R('cid');
17 $id = (int)R('id');
18 $table = $this->models->get_table($mid);
19 $cfg = $this->runtime->xget();
20
21 $updir = 'upload/'.$table.'/';
22 $config = array(
23 'maxSize'=>$cfg['up_img_max_size'],
24 'allowExt'=>$cfg['up_img_ext'],
25 'upDir'=>TWCMS_PATH.$updir,
26 );
27 $this->cms_content_attach->table = 'cms_'.$table.'_attach';
28 $info = $this->cms_content_attach->uploads($config, $this->_user['uid'], $cid, $id);
29
30 if($info['state'] == 'SUCCESS') {
31 $path = $updir.$info['path'];
32 $thumb = image::thumb_name($path);
33 $src_file = TWCMS_PATH.$path;
34 image::thumb($src_file, TWCMS_PATH.$thumb, $cfg['thumb_'.$table.'_w'], $cfg['thumb_'.$table.'_h'], $cfg['thumb_type'], $cfg['thumb_quality']);
35
36 // 核心功能不打算做复杂了,想生成更多尺寸的图片建议使用此接口做成插件。
37 // hook admin_attach_control_upload_image_success_after.php
38
39 // 是否添加水印
40 if(!empty($cfg['watermark_pos'])) {
41 image::watermark($src_file, TWCMS_PATH.'static/img/watermark.png', null, $cfg['watermark_pos'], $cfg['watermark_pct']);
42 }
43
44 if($type == 'img') { // 图集
45 if(R('ajax')) {
46 echo '{"path":"'.$path.'","thumb":"'.$thumb.'","state":"'.$info['state'].'","aid":"'.$info['maxid'].'"}';
47 }else{
48 echo '<script>parent.setDisplayImg("'.$path.'","'.$thumb.'","'.$info['maxid'].'");</script>';
49 }
50 }else{ // 缩略图
51 echo '<script>parent.setDisplayPic("'.$path.'","'.$thumb.'");</script>';
52 }
53 }else{
54 if(R('ajax')) {
55 echo '{"path":"","state":"'.$info['state'].'"}';
56 }else{
57 echo '<script>alert("'.$info['state'].'");</script>';
58 }
59 }
60 exit;
61 }
62
63 // hook admin_attach_control_after.php
64}
65