这只是个暂行的办法,回头研究好七牛云的base64上传或者vue的文件上传后还是要进行更改的
想法是这样的,既然前端只能穿base64的那就传base64的然后转为文件上传到七牛云后再删除
本地的文件。
后缀统一定死了,这个是可以写活的,想写活的话就再传个文件名称就好了,通过php的获取文件信息函数或者截取函数都是可以实现获得后缀的,因为这个方法只是暂行的后面还会修改,所以我就先写死了
<?php namespace app\api\controller; use think\Db; use think\controller; use app\api\controller\User; use Qiniu\Qiniu; use think\Request; /** * * @author wangyanyan * */ class Userprize extends User { public function upload() { $base_img = input(‘imgbase/s‘,‘‘); $base_str = explode(‘,‘, $base_img); $img = base64_decode($base_str[‘1‘]); $time = time(); $uid = $this->_uid; $imgName = $time.‘-‘.$uid; $imgPath = ‘./public/uploads/‘.$imgName.‘.jpg‘; $imgSize = file_put_contents($imgPath, $img); // 要上传图片的本地路径 $filePath = $imgPath; $qiniu_config = db(‘my_config‘)->where(array(‘name‘=>‘qiniu‘))->value(‘data‘); if($qiniu_config){ $qiniu_config = json_decode($qiniu_config); } $config = array( ‘domain‘=>$qiniu_config->domain, ‘bucket‘=>$qiniu_config->bucket, ‘accesskey‘=>$qiniu_config->accesskey, ‘secretkey‘=>$qiniu_config->secretkey, ); $qiniu = new Qiniu($config); $qiniu->token(); //$ext = pathinfo($file->getInfo(‘name‘), PATHINFO_EXTENSION); //后缀 $ext = ‘.jpg‘; $result = $qiniu->uploadOne($filePath,‘‘,null,$eaxt); //这里是Form表单提交 if ($result) { unlink($imgPath); $data = $qiniu_config->domain.$result[‘key‘]; $this->apiReturn(1, $data); } else { $this->apiReturn(0,"系统开小差了哦~"); } } }
原文:https://www.cnblogs.com/wangyang0210/p/10404590.html