前言
这只是个暂行的办法,回头研究好七牛云的base64上传或者vue的文件上传后还是要进行更改的
想法是这样的,既然前端只能穿base64的那就传base64的然后转为文件上传到七牛云后再删除
本地的文件。
代码
后缀统一定死了,这个是可以写活的,想写活的话就再传个文件名称就好了,通过php的获取文件信息函数或者截取函数都是可以实现获得后缀的,因为这个方法只是暂行的后面还会修改,所以我就先写死了
代码语言:javascript复制<?php
namespace appapicontroller;
use thinkDb;
use thinkcontroller;
use appapicontrollerUser;
use QiniuQiniu;
use thinkRequest;
/**
*
* @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,"系统开小差了哦~");
}
}
}