>  기사  >  백엔드 개발  >  thinkphp 양식은 파일을 업로드하고 파일 경로를 Database_php 예제에 저장합니다.

thinkphp 양식은 파일을 업로드하고 파일 경로를 Database_php 예제에 저장합니다.

WBOY
WBOY원래의
2016-08-17 13:02:371058검색

단일 파일 업로드. 이 글에서는 사진 업로드를 예로 들어 설명합니다.

업로드 경로를 저장하려면 데이터베이스 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',
),
); 

파일 업로드/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 양식입니다. 궁금한 사항이 있으면 메시지를 남겨주세요. 시간 내에 답변해 드리겠습니다. 또한 Script House 웹사이트를 지원해 주시는 모든 분들께 감사의 말씀을 전하고 싶습니다!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.