返回thinkPH......登陆

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

时间轴2019-03-10 17:19:08284

记录一下在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();

 }

   



最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送