这篇文章主要为大家展示了“thinkphp实现图片上传功能的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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实现图片上传功能的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。