前言
上传图片还是文件这个可以根据你的修改,我这里展示的是上传图片,但是其实原理都是一样的
接收 —> 移动到目录 —> 返回图片路径。这里暂不支持多图上传,多图上传有时间会加上。
目录结构
使用到的文件
Result.php
<?php
namespace app\business\Result;
class Result {
//success
static public function Success($data) {
$rs = [
'code'=>200,
'message'=>"success",
'data'=>$data,
];
return json($rs);
}
/**
* error
* 402 图片上传格式错误
* 500 错误
* */
static public function Error($code,$msg) {
$rs = [
'code'=>$code,
'message'=>$msg,
'data'=>"",
];
return json($rs);
}
}
Result.php 是用来格式化返回数据给前端的,可以根据自己的不同需求来进行修改。
upFile.php
<?php
namespace app\controller;
namespace app\validate;
use app\BaseController;
use app\business\Result\Result;
use think\Request;
use think\file\UploadedFile;
use think\Validate;
class upFile extends BaseController {
public function index() {
$data = $_POST;
// image 前端图片名称
$data['image'] = request()->file('image');
$file = $data['image'];
// 文件信息验证与上传到服务器指定目录
$info = $file->validate([
'size'=>5000000, // 文件大小
'ext'=>'jpg,jpeg,png,gif' // 文件拓展名
])->move('static/'); // 移动到public/uploads目录下
// 错误
if($info == false){
return Result::Error($file->getError());
}
// 获取文件名
$data['image'] = $info->getSaveName();
return Result::Sucess($data['image']);
}
}
?>
其中 image 对应前端上传的图片字段名称,static/ 是存放在 public 文件夹下的,可要根据不同需求修改存放路径。我这边返回的是图片的名称,根据需要也可以返回图片访问路径。