时间:2021-07-01 10:21:17 帮助过:25人阅读
最近一个app IOS的 用thinkphp写接口 实名认证中 必须要上传一张自己的图片
如何用thinkphp 写上传图片的接口 有没有源码 请注明每步操作 万分感谢!!
//上传图片方法 可以放在父类以便以后继承直接调用
//两种上传方式一种是file另一种是base64
public function picupload()
{
if (!IS_POST) {
die('');
}
//base64上传方式(主要是为了处理微信不支持 input file)
$smeta = $_POST['smeta'];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $smeta, $result)) {//base64上传
$data = base64_decode(str_replace($result[1], '', $smeta));
$dataname = './Uploads/' . uniqid() . '.' . $result[2];
if (file_put_contents($dataname, $data)) {
$this->ajaxoutput($dataname); //返回数据结构自行封装
}else{
$this->ajaxerror('上传出错');
}
}
//处理file上传 这里是调用thinkphp封装好\Think\Upload这个上传类 可以学习写thinkphp官方这个类是怎么写的
$config = array(
'rootPath' => './Uploads/',
'savePath' => '',
'maxSize' => 11048576,
'saveName' => array('uniqid', ''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => false,
);
$upload = new \Think\Upload($config);//
$info = $upload->upload();
//开始上传
if ($info) {
//上传成功
$first = array_shift($info);
if (!empty($first['url'])) {
$url = $first['url'];
} else {
$url = C("TMPL_PARSE_STRING.__UPLOAD__") . $first['savename'];
}
$this->ajaxoutput($url);
} else {
//上传失败,返回错误
$this->ajaxerror($upload->getError());
}
}
app post上来
然后php中$_FILES接收,没有什么特殊的