1、将文件上传至指定目录
2、获取文件的字段与路径
3、保存文件路径(尽量使用相对路径保存)
upload.php控制器
<?php
namespace app\goods\controller;
use library\Controller;
use think\facade\Request;
use app\goods\logic\UploadLogic;
/**
* 文件上传 文件类型验证器
* Class Upload
* @package app\goods\controller
*/
class Upload extends Controller
{
//文件上传,将文件报存在指定位置的同时,将文件地址获取并保存链接地址
public function index()
{
$data = 1111111111;
$this->assign('data', $data);
$this->fetch('upload/index');
// return view('upload/index');
}
public function file()
{
$uploadLogic = new UploadLogic();
//获取POST提交的数据信息 存入文件绝对路径
$postData = Request::post();
//处理保存图片路径信息
$res = $uploadLogic->doSaveImg($postData);
halt($res);
}
}
uploadLogin.php逻辑处理类
<?php
namespace app\goods\logic;
use library\Controller;
use think\Db;
use think\Exception;
class UploadLogic extends Controller
{
public function doSaveImg($postData)
{
Db::startTrans();
try {
//整合数据字段
$data = $this->initializeFile($postData);
Db::name('upload_file')->insert($data);
Db::commit();
return ['code' => 1, 'msg' => '流程数据添加成功'];
} catch (Exception $e) {
Db::rollback();
return ['code' => 0, 'msg' => '数据库操作异常', 'data' => ['error_msg' => $e->getMessage()]];
}
}
public function initializeFile($postData)
{
$group = [
'imgurl'=> $postData['file-field']?? "",
];
return $group;
}
}
前端页面代码index.html
{extend name='admin@main'}
<!--按钮-->
{block name="button"}
{/block}
{block name="content"}
<form method="post" class='layui-form' action="{:url('upload/file')}" enctype="multipart/form-data">
<!-- <button type="button" data-file='one' data-field='file-field' data-type='jpg,png,gif' class="layui-btn" id="test3" name="file_field"><i class="layui-icon"></i>上传文件</button>-->
<input name='file-field'>
<button type='button' data-file='one' data-field='file-field' data-type='jpg,png,gif'>上传文件</button>
<button type="submit" class="layui-btn" >提交</button>
</form>
{/block}
{block name="script"}
<script>
window.form.render();
</script>
{/block}
显示结果页