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 相关文章推荐
杏林同学录(三)
Oct 09 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php实现的简单日志写入函数
Mar 31 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
Symfony2函数用法实例分析
Mar 18 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
php上传excel表格并获取数据
Apr 27 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
php中array_fill函数的实例用法
Mar 02 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
smarty section简介与用法分析
2008/10/03 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
vue-router传参用法详解
2019/01/19 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
python实现横向拼接图片
2020/03/23 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
2014年最新学习全国两会精神心得
2014/03/17 职场文书
考试诚信承诺书
2014/05/23 职场文书
宿舍卫生管理制度
2015/08/05 职场文书