thinkphp表单上传文件并将文件路径保存到数据库中
2018-09-24 21:37
上传单个文件,此文以上传图片为例,上传效果如图所示
创建数据库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表单上传文件并将文件路径保存到数据库中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!