thinkphp表单上传文件并将文件路径保存到数据库中


Posted in PHP onJuly 28, 2016

上传单个文件,此文以上传图片为例,上传效果如图所示

thinkphp表单上传文件并将文件路径保存到数据库中

创建数据库upload_img,用于保存上传路径

CREATE TABLE `seminar_upload_img` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`img_name` varchar(255) DEFAULT NULL COMMENT '图片名称',
`img_url` varchar(255) DEFAULT NULL COMMENT '图片路径',
`create_time` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

在公共配置文件Common/Conf.php中连接数据库,并配置地址

return array(
'DB_TYPE'=>'mysql',
'DB_HOST'=>'127.0.0.1',
'DB_NAME'=>'seminar',
'DB_USER'=>'root',
'DB_PWD'=>'root',
'DB_PORT'=>3306,
'DB_PREFIX'=>'seminar_',
'DB_CHARSET'=>'utf8',
'SHOW_PAGE_TRACE'=>true,
/*地址替换*/
'TMPL_PARSE_STRING'=>array(
'__UPLOAD__'=>__ROOT__.'/Public/Uploads',
),
);

视图文件Upload/index.html中

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
#img{height:22px; border:#000 2px solid}
#button{height:30px; width:100px;}
</style>
</head>
<body>
<div><notemply name="data">
<img src="__UPLOAD__/{$data['img_url']}" width="200" height="100"/>
</notemply></div>
<div class="result" >上传允许文件类型:'jpg', 'gif', 'png', 'jpeg'图像文件后</div><br>
<form action="{:U('upload/Upload')}" method="post" enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="submit" value="上传" id="button">
</form>
</body>
</html>

控制器UploadController.class.php中实现上传文件

namespace Home\Controller;
use Think\Controller;
class UploadController extends Controller {
public function index() {
$img=M('upload_img');
$sel=$img->order('create_time desc')->find();
$this->assign('data', $sel);
$this->display();
}
public function upload(){
$upload_img=M('upload_img');
if(!empty($_FILES)){
//上传单个图像
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 1*1024*1024 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = 'Public/Uploads/'; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传(子)目录
$upload->saveName=array('uniqid','');//上传文件的保存规则
$upload->autoSub = true;//自动使用子目录保存上传文件 
$upload->subName = array('date','Ymd');
// 上传单个图片
$info = $upload->uploadOne($_FILES['image']);
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功 获取上传文件信息
$img_url=$info['savepath'].$info['savename'];
$data['img_url']=$img_url;
$data['img_name']=$info['savename'];
$data['create_time']=NOW_TIME;
$upload_img->create($data);
$result=$upload_img->add();
if(!$result){
$this->error('上传失败!');
}else{
$this->success('上传成功');
}
}
}
}
}

以上所述是小编给大家介绍的thinkphp表单上传文件并将文件路径保存到数据库中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php 短链接算法收集与分析
Dec 30 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
php实现下载限制速度示例分享
Feb 13 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
如何重写Laravel异常处理类详解
Dec 20 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 #PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 #PHP
thinkphp3.2.3 分页代码分享
Jul 28 #PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 #PHP
PHP实现带重试功能的curl连接示例
Jul 28 #PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 #PHP
php倒计时出现-0情况的解决方法
Jul 28 #PHP
You might like
带密匙的php加密解密示例分享
2014/01/29 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
JavaScript加强之自定义callback示例
2013/09/21 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
python设置值及NaN值处理方法
2018/07/03 Python
对Django中内置的User模型实例详解
2019/08/16 Python
Python的互斥锁与信号量详解
2019/09/12 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
Python同时处理多个异常的方法
2020/07/28 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
工作自我评价分享
2013/12/01 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
群众路线对照检查材料
2014/09/22 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python