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 相关文章推荐
php基础知识:函数基础知识
Dec 13 PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
php 文件上传实例代码
Apr 19 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
PHP中的Session对象如何使用
Sep 25 PHP
form自动提交实例讲解
Jul 10 PHP
php实现简单的守护进程创建、开启与关闭操作
Aug 13 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
js获取当前select 元素值的代码
2010/04/19 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
js导出txt示例代码
2014/01/14 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
基于复选框demo(分享)
2017/09/27 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Python3.9新特性详解
2020/10/10 Python
selenium如何定位span元素的实现
2021/01/13 Python
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
大专计算机个人求职的自我评价
2013/10/21 职场文书
四群教育工作实施方案
2014/03/26 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
保证书格式
2015/01/16 职场文书
阿凡达观后感
2015/06/10 职场文书
保护环境的宣传语
2015/07/13 职场文书
初一数学教学反思
2016/02/17 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android