首页 > app中用thinkphp 如何做一个上传图片 的 接口

app中用thinkphp 如何做一个上传图片 的 接口

最近一个app IOS的 用thinkphp写接口 实名认证中 必须要上传一张自己的图片
如何用thinkphp 写上传图片的接口 有没有源码 请注明每步操作 万分感谢!!


app post上来
然后php中$_FILES接收,没有什么特殊的


//上传图片方法 可以放在父类以便以后继承直接调用
//两种上传方式一种是file另一种是base64

public function picupload()
{
    if (!IS_POST) {
        die('<form method=post enctype="multipart/form-data">
            smeta(base64) :<input name="smeta"><br/>
            smeta :<input name="smeta" type="file"><br/>
        <input type=submit>
        </form>');
    }
    //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());
    }

}
【热门文章】
【热门文章】