PHP——base64的图片的另类上传方法

前言

这只是个暂行的办法,回头研究好七牛云的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,"系统开小差了哦~");
        }
     }
}

 

posted @ 2019-02-20 09:18  。思索  阅读(230)  评论(0编辑  收藏  举报