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

时间:2021-05-26

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

创建数据库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表单上传文件并将文件路径保存到数据库中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章