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与SQL注入攻击[三]
Apr 17 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP简单实现无限级分类的方法
May 13 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
Linux系统下安装PHP7.3版本
Jun 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
Apache中php.ini的设置方法
2013/02/28 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
纯python实现机器学习之kNN算法示例
2018/03/01 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
浅谈python3中input输入的使用
2019/08/02 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
应聘面试自我评价
2014/01/24 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
五一放假通知怎么写
2015/08/18 职场文书
Mysql MVCC机制原理详解
2021/04/20 MySQL