thinkphp实现图片上传功能


Posted in PHP onJanuary 13, 2016

关于图片上传,实现方法很多,比如可以用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 相关文章推荐
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP中的替代语法简介
Aug 22 PHP
php修改指定文件后缀的方法
Sep 11 PHP
laravel安装和配置教程
Oct 29 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
Yii多表联合查询操作详解
Jun 02 PHP
Yii CGridView用法实例详解
Jul 12 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP实现伪静态方法汇总
Jan 13 #PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 #PHP
优化WordPress中文章与评论的时间显示
Jan 12 #PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 #PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 #PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 #PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 #PHP
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
python中if嵌套命令实例讲解
2021/02/25 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
开会迟到检讨书
2014/01/08 职场文书
企业晚会策划方案
2014/05/29 职场文书
司法助理专业自荐书
2014/06/13 职场文书
电子专业求职信
2014/06/19 职场文书
应届生面试求职信
2014/07/02 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
初中运动会前导词
2015/07/20 职场文书