thinkphp实现图片上传功能

5年以前  |  阅读数:511 次  |  编程语言:PHP 

关于图片上传,实现方法很多,比如可以用jQuery,当然,我们的thinkPHP内置了关于图片上传的功能,我们可以直接使用,使用方法如下:

首先,是表单书写,我们建立如下表单:


    <form action="__URL__/addChk" method="post" enctype="multipart/form-data"> 
     <table cellspacing="1" cellpadding="2" width="99%" align="center" border="0"> 
      <tbody> 
       <tr> 
       <th align="left" colspan="2" height="25">添加新游戏</th> 
       </tr> 
       <tr> 
       <td width="17%" height="23">游戏名称</td> 
       <td width="83%"><strong><input type="text" name="gamename" /></strong></td> 
       </tr> 
       <tr> 
       <td height="23">游戏图片</td> 
       <td ><input type="file" name="gameimg"/></td> 
       </tr> 
       <tr> 
       <td width="17%" height="23">游戏简介<span></span></td> 
       <td width="83%"><textarea name="gameinfo" cols="30" rows="5"></textarea></td> 
       </tr> 
       <tr> 
       <td height="23">游戏地址:</td> 
       <td> 
       <input type="text" name="gamelink"/></td> 
       </tr> 
       <tr> 
       <td height="23" colspan="2" ><input type="submit" value="添加" />  
        <input type="reset" value="重新填写"/></td> 
       </tr> 
      </tbody> 
      </table> 
    </form>

这里有个非常重要的地方,就是一定要在表单项目添加上enctype="multipart/form-data"这一点是非常重要的,因为这个是允许你上传的类型的,如果没有他,就不能上传,关于enctype的其他几种类型,我会在以后的文章上说明。这里我们新建php文件AddAction.class.php,代码如下;


    class AddAction extends Action{ 
     /** 
     * 说明:ThinkPHP文件上传测试函数 
     * 版本:1.0 

     */ 
     public function addChk(){ 
       //导入图片上传类 
       import("ORG.Net.UploadFile"); 
       //实例化上传类 
       $upload = new UploadFile(); 
       $upload->maxSize = 3145728; 
       //设置文件上传类型 
       $upload->allowExts = array('jpg','gif','png','jpeg'); 
       //设置文件上传位置 
       $upload->savePath = "./Public/Uploads/";//这里说明一下,由于ThinkPHP是有入口文件的,所以这里的./Public是指网站根目录下的Public文件夹 
       //设置文件上传名(按照时间) 
       $upload->saveRule = "time"; 
       if (!$upload->upload()){ 
        $this->error($upload->getErrorMsg()); 
       }else{ 
        //上传成功,获取上传信息 
        $info = $upload->getUploadFileInfo(); 
       } 

       //保存表单数据,包括上传的图片 
       $game = M("Game"); 
       $game->create(); 
       $savename = $info[0]['savename']; 
       //$savepath = $info[0]['savepath']; 
       //$aa = $savepath.$savename; 
       //dump($aa); 
       $imgurl = "http://demo.dutycode.com/Public/Uploads/".$savename;//这里是设置文件的url注意使用.不是+ 
       //dump($imgurl); 
       $data['gamename'] = $_POST['gamename']; 
       $data['gameimg'] = $imgurl; 
       $data['gameinfo'] = $_POST['gameinfo']; 
       $data['gamelink'] = $_POST['gamelink']; 
       $data['publishtime'] = date("Y-m-d H:i:s"); 
       $res = $game->add($data);//写入数据库 
       if ($res){ 
        $this->redirect("addGame","",2,"添加成功!两秒后跳回"); 
       }else{ 
        $this->redirect("addGame","",2,"失败!两秒后跳回"); 
       } 
    } 

这里说明一下,首先是php中的连接符是点(.)不是+,这一点在很多java使用者里面通常使用+连接两个字符串的,所以这一点容易混淆。

以上就是针对thinkphp图片上传功能实现代码的介绍,帮助大家更好的学习掌握php程序设计。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例