本文实例讲述了CI框架文件上传类及图像处理类用法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
//列表页banner图片 public function edit_list_page_banner( $category_id = "" ){ $category_id = empty ( $category_id )? $_POST [ "category_id" ]: $category_id ; //上传图片 if (isset( $_POST [ "key" ]) && $_POST [ "key" ] == "upload" ){ /* 1.set_upload_path */ $config [ 'upload_path' ]= "./upload/source/" . date ( "Y/m/d" ); //文件上传目录 if (! file_exists ( "./upload/source/" . date ( "Y/m/d" ))){ mkdir ( "./upload/source/" . date ( "Y/m/d" ),0777,true); //原图路径 } if (! file_exists ( "./upload/big_thumb/" . date ( "Y/m/d" ))){ mkdir ( "./upload/big_thumb/" . date ( "Y/m/d" ),0777,true); //大缩略图路径 } if (! file_exists ( "./upload/small_thumb/" . date ( "Y/m/d" ))){ mkdir ( "./upload/small_thumb/" . date ( "Y/m/d" ),0777,true); //小缩略图路径 } $config [ 'allowed_types' ]= "gif|jpg|png|txt" ; //文件类型 $config [ 'max_size' ]= "20000" ; //最大上传大小 $this ->load->library( "upload" , $config ); if ( $this ->upload->do_upload( 'userfile' )) //表单中name="userfile" { //上传成功之后,生成两张缩略图 $data = $this ->upload->data(); //返回上传图片的信息 $this ->load->library( "image_lib" ); //载入图像处理类库 //第一种方式:大缩略图的配置参数 /* $config_big_thumb['image_library'] = 'gd2';//gd2图库 $config_big_thumb['source_image'] = $data['full_path'];//原图 $config_big_thumb['new_image'] = "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'];//大缩略图 $config_big_thumb['create_thumb'] = true;//是否创建缩略图 $config_big_thumb['maintain_ratio'] = true; $config_big_thumb['width'] = 300;//缩略图宽度 $config_big_thumb['height'] = 300;//缩略图的高度 $config_big_thumb['thumb_marker']="_300_300";//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图 */ //第二种:大缩略图的配置参数 /* $config_big_thumb=array( 'image_library' => 'gd2',//gd2图库 'source_image' => $data['full_path'],//原图 'new_image' => "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'],//大缩略图 'create_thumb' => true,//是否创建缩略图 'maintain_ratio' => true, 'width' => 300,//缩略图宽度 'height' => 300,//缩略图的高度 'thumb_marker'=>"_300_300"//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图 ); */ //第三种方式:将部分配置信息放到了config.php文件中 $config_big_thumb = $this ->config->item( "config_big_thumb" ); $config_big_thumb [ 'source_image' ]= $data [ 'full_path' ]; $config_big_thumb [ 'new_image' ]= "./upload/big_thumb/" . date ( "Y/m/d" ). "/" . $data [ 'file_name' ]; //小缩略图的配置参数 /* $config_small_thumb['image_library'] = 'gd2';//gd2图库 $config_small_thumb['source_image'] = $data['full_path'];//原图 $config_small_thumb['new_image'] = "./upload/small_thumb/".date("Y/m/d")."/".$data['file_name'];//大缩略图 $config_small_thumb['create_thumb'] = true;//是否创建缩略图 $config_small_thumb['maintain_ratio'] = true; $config_small_thumb['width'] = 100;//缩略图宽度 $config_small_thumb['height'] = 100;//缩略图的高度 $config_small_thumb['thumb_marker']="_100_100";//缩略图名字后加上 "_100_100",可以代表是一个100*100的缩略图 */ //小缩略图的配置参数 $config_small_thumb = array ( 'image_library' => 'gd2' , //gd2图库 'source_image' => $data [ 'full_path' ], //原图 'new_image' => "./upload/small_thumb/" . date ( "Y/m/d" ). "/" . $data [ 'file_name' ], //大缩略图 'create_thumb' => true, //是否创建缩略图 'maintain_ratio' => true, 'width' => 100, //缩略图宽度 'height' => 100, //缩略图的高度 'thumb_marker' => "_100_100" //缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图 ); //$this->load->library("image_lib",$config_thumb); $this ->image_lib->initialize( $config_big_thumb ); $this ->image_lib->resize(); //生成big缩略图 $this ->image_lib->initialize( $config_small_thumb ); $this ->image_lib->resize(); //生成small缩略图 //插入数据库 $data_array = array ( 'category_id' => $category_id , 'pic_url' => "./upload/source/" . date ( "Y/m/d" ). "/" . $data [ 'file_name' ], 'addtime' => time(), 'is_stop' => 1, 'sort' =>0, 'gender' => $_POST [ "gender" ], 'link_url' => $_POST [ "link_url" ], 'user_id' => intval ( $this ->cur_user [ 'user_id' ]) ); $this ->category_model->add_category_banner( $data_array ); } } $con_arr [] = " category_id= '{$category_id}'" ; if ( $gender == '' ) { $gender =0; } $con_arr [] = " gender= '{$gender}'" ; $condition = implode( ' and ' , $con_arr ); $banner_list = $this ->category_model->get_banner_all( $condition ); $this ->tp->assign( 'banner_list' , $banner_list ); $this ->tp->assign( 'base_url' , base_url()); $this ->tp->assign( 'gender' , $gender ); $this ->tp->assign( 'category_id' , $category_id ); $this ->tp->display( "category/edit_list_page_banner.php" ); } |
config.php文件中有关缩略图的配置项:
1
2
3
4
5
6
7
8
9
|
//大缩略图的配置参数 $config_big_thumb = array ( 'image_library' => 'gd2' , //gd2图库 'create_thumb' => true, //是否创建缩略图 'maintain_ratio' => true, 'width' => 300, //缩略图宽度 'height' => 300, //缩略图的高度 'thumb_marker' => "_300_300" //缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图 ); |
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。