上传图片还是文件这个可以根据你的修改,我这里展示的是上传图片,但是其实原理都是一样的
接收 —> 移动到目录 —> 返回图片路径。这里暂不支持多图上传,多图上传有时间会加上。
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 文件夹下的,可要根据不同需求修改存放路径。我这边返回的是图片的名称,根据需要也可以返回图片访问路径。