APICloud后台单图片上传 Thinkphp5源码分享

189 阅读1分钟

Thinkphp5为后台的APICloud单图片上传案例源码分享。

前提:thinkphp5框架已经搭建好了,可以正常运行,域名什么的也可以运行。

APICloud端:一定要获取到该图片在你手机上的绝对位置,不加任何的fs、weiget,这里假设我们这里已经获取到图片的绝对地址。

推荐我常用的一种获取照片绝对地址的方法:

api.getPicture({
                sourceType: type,
                encodingType: 'jpg',
                mediaValue: 'pic',
                destinationType: 'url',
                allowEdit: true,
                preview:true,
                quality: 100,
                saveToPhotoAlbum: true,
                groupName:'wutong'
            }, function(ret, err) {
                if (ret) {
                    if(ret.data != ''){

把获取到的图片绝对地址传给上传图片的方法,代码如下:

 api.ajax({
            url: Uinfo + '/getImgToFuwuqi',
            method: 'post',
            headers:{
                token:token
            },
            data: {
                values: {
                    uid:uid
                },
                files: {
                    img:data
                }
            }
        },function(ret, err){
            if (ret && ret.code == 410) {
                // console.log(JSON.stringify(ret));
                api.toast({msg: '照片更新成功,审核后即可展示',duration: 2000,location: 'top'});
                $api.byId('uphoto');
            } else {
                console.log( JSON.stringify( err ) );
            }
            api.hideProgress();
        });

上面在客户端已经写得差不多了,现在我们转向thinkphp5的后台方向:

// 将照片墙上的图片上传到服务器
    public function getImgToFuwuqi(){
        $img = request()->file('img');
        $uid = $_POST['uid'];
        mkdirs();
        if($img){
            $info = $img->move(ROOT_PATH . 'public/static/' . DS . 'photo');
            $image = \think\Image::open($info);
            $mulu = date('Ymd',time()).'/' . time();
            $image->thumb(150, 150)->save(ROOT_PATH . 'public/static/thumb/'. $mulu .'.png');
            if($info){
                $data = [
                    'photo' =>  $info->getSaveName(),
                    'uid'   =>  $uid,
                    'status'=>  0,
                    'thumb' =>  $mulu.'.png',
                    'time'  =>  time()
                ];
                // 写入数据库
                $insertImg = Db::name('photo')->insert($data);
                return ['code' => 410];
            }else{
                return ['code' => 411];
            }
        }else{
            return ['code' => 411];
        }
    }