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];
}
}