本文实例讲述了thinkPHP实现上传图片及生成缩略图功能。分享给大家供大家参考,具体如下:
记录一下在thinkPHP上传图片的方法(Upload)和生成缩略图(Image)的方法.
html页面form中必须加enctype="multipart/form-data"
1
2
3
4
5
6
7
8
9
10
|
< form action = "__SELF__" method = "post" enctype = "multipart/form-data" >
< table width = "100%" class = "cont" >
< tr >
< td >照片:</ td >
< td width = "20%" >< input type = "file" name = "pic" id = "pic" /></ td >
< td colspan = "3" >< input class = "btn" type = "submit" value = "提交" /></ td >
< td > </ td >
</ tr >
</ table >
</ form >
|
php代码
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
|
<?php
namespace Admin\Controller;
use Org\Util\ Date ;
use Think\Controller;
use Think\Image;
use Think\Upload;
class UserController extends Controller {
public function add(){
$user = M( 'user' );
if (! empty ( $_POST )){
$user = $user ->create();
//判断传入的图片有没有问题
if ( $_FILES [ 'pic' ][ 'error' ] == 0){
$config = array (
'rootPath' => './Application/public/image/' // 设置图片保存路径
);
//new一个上传模型
$upload = new Upload( $config );
//上传图片
$pic = $upload ->uploadOne( $_FILES [ 'pic' ]);
//将图片保存到数据库中
$user [ 'big_pic' ] = $pic [ 'savepath' ]. $pic [ 'savename' ];
//生成缩略图
$img = new Image();
//大图片的路径
$big_img = $upload ->rootPath. $user [ 'big_pic' ];
//打开大图片
$img ->open( $big_img );
//设置图片大小
$img ->thumb(200,300);
//设置绝对路径
$small_img = $upload ->rootPath. $pic [ 'savepath' ]. 'small_' . $pic [ 'savename' ];
//保存
$img ->save( $small_img );
//将图片名称存入数据库
$user [ 'img' ] = $pic [ 'savepath' ]. 'small_' . $pic [ 'savename' ];
}
$user [ 'create_date' ] = date ( "Y-m-d H:i:s" );
$msg = "添加失败" ;
if (M( "user" )->add( $user ))
$msg = "添加成功" ;
$this ->redirect(show_list,null,3, $msg );
}
$this ->display();
}
|
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:http://blog.csdn.net/qq_22793991/article/details/53710252