php教程

超轻量级php框架startmvc

thinkPHP实现上传图片及生成缩略图功能示例

更新时间:2020-03-25 04:08:59 作者:startmvc
本文实例讲述了thinkPHP实现上传图片及生成缩略图功能。分享给大家供大家参考,具体如下

本文实例讲述了thinkPHP实现上传图片及生成缩略图功能。分享给大家供大家参考,具体如下:

记录一下在thinkPHP上传图片的方法(Upload)和生成缩略图(Image)的方法.

html页面form中必须加enctype="multipart/form-data"


<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代码


<?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 上传图片 生成缩略图