Heim  >  Artikel  >  Backend-Entwicklung  >  Thinkphp-Formular-Datei hochladen und Dateipfad in der Datenbank speichern

Thinkphp-Formular-Datei hochladen und Dateipfad in der Datenbank speichern

不言
不言Original
2018-05-08 11:26:312589Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Informationen zum Hochladen von Dateien über thinkphp-Formulare und zum Speichern von Dateipfaden in der Datenbank vorgestellt.

Das Hochladen einer einzelnen Datei dient als Beispiel. Der Effekt ist wie in der Abbildung gezeigt

Erstellen Sie die Datenbank upload_img, um den Upload-Pfad zu speichern

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;

Verbinden Sie sich mit der Datenbank in der öffentlichen Konfigurationsdatei Common/Conf.php und konfigurieren Sie die Adresse

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',
),
);

in der Ansichtsdatei 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>
<p><notemply name="data">
<img src="__UPLOAD__/{$data[&#39;img_url&#39;]}" width="200" height="100"/>
</notemply></p>
<p class="result" >上传允许文件类型:&#39;jpg&#39;, &#39;gif&#39;, &#39;png&#39;, &#39;jpeg&#39;图像文件后</p><br>
<form action="{:U(&#39;upload/Upload&#39;)}" method="post" enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="submit" value="上传" id="button">
</form>
</body>
</html>

Das Hochladen von Dateien ist im Controller UploadController.class.php

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

verwandt Empfohlen:

Anwendung zur automatischen Überprüfung von ThinkPHP-Formularen, PHP-Tutorial zur Überprüfung von ThinkPHP-Formularen

Das obige ist der detaillierte Inhalt vonThinkphp-Formular-Datei hochladen und Dateipfad in der Datenbank speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn