IOS、安卓等APP客户端PHP上传接口【原创

来源:https://www.sucaihuo.com/js/1332.html 2017-02-08 13:58浏览(1903) 收藏

本文的上传DEMO只是用作本地上传演示,IOS、安卓等APP客户端只要请求ajax.php,并传参file即可获取。该demo是单文件上传,若是APP端想多文件上传,请求ajax.php多次即可。
IOS、安卓等APP客户端PHP上传接口
分类:PHP > 上传 难易:中级
下载资源 下载积分: 220 积分

上传图片接口地址:http://www.sucaihuo.com/jquery/13/1332/demo/ajax.php,本文中的index.html仅作为测试

PHP原生上传

$typeArr = array("jpg", "png", "gif");//允许上传文件格式
$path = "uploads/";//上传路径

if (isset($_POST)) {
    $name = $_FILES['file']['name'];
    $size = $_FILES['file']['size'];
    $name_tmp = $_FILES['file']['tmp_name'];
    if (empty($name)) {
        echo json_encode(array("error"=>"您还未选择图片"));
        exit;
    }
    $type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
    
    if (!in_array($type, $typeArr)) {
        echo json_encode(array("error"=>"清上传jpg,png或gif类型的图片!"));
        exit;
    }
    if ($size > (500 * 1024)) {
        echo json_encode(array("error"=>"图片大小已超过500KB!"));
        exit;
    }
    
    $pic_name = time() . rand(10000, 99999) . "." . $type;//图片名称
    $pic_url = $path . $pic_name;//上传后图片路径+名称
    if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹
        echo json_encode(array("error"=>"0","pic"=>$pic_url,"name"=>$pic_name));
    } else {
        echo json_encode(array("error"=>"上传有误,清检查服务器配置!"));
    }
}

Thinkphp上传

//上传图片
    public function upload_pic() {

        $data = array(
            "files" => $_FILES,
        );
        $rs = $this->upload_common($data);
        echo json_encode($rs);
    }

    function upload_common($posts) {
        $pics = $posts['files'];

        $path = "uploads/"; //上传路径
        if (!is_dir($path)) {
            mkdir($path, 0777);
        }
        $error_name = $error_size = $error_type = 0;
        $typeArr = array("jpg", "png", "gif", "jpeg"); //允许上传文件格式
        $size_max = 50000 * 1024; //最大上传文件大小
        foreach ($pics as $v) {
            $name = $v['name'];
            $size = $v['size'];
            $name_tmp = $v['tmp_name'];
            $type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
            if ($name == '') {
                $error_name ++;
            }
            if ($size > $size_max) {
                $error_size++;
            }

            if (!in_array($type, $typeArr)) {
                $error_type++;
            }
        }

        if ($error_name > 0) {
            echo json_encode(array("code" => "no_upload_pic", "result" => "请选择上传图片"));
            exit;
        }
        if ($error_size > 0) {
            echo json_encode(array("code" => "over_size", "result" => "图片大小已超过50000KB!"));
            exit;
        }
        if ($error_type > 0) {
            echo json_encode(array("code" => "wrong_types", "result" => "清上传图片格式的文件!"));
            exit;
        }
        $times_success = 0;
        foreach ($pics as $v) {
            $name = $v['name'];
            $size = $v['size'];
            $name_tmp = $v['tmp_name'];

            $type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
            $pic_name = time() . rand(10000, 99999) . "." . $type; //文件名称
            $pic_url = $path . $pic_name; //上传后图片路径+名称
            if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹
                $times_success++;
            }
//            $pics[] = $pic_url;
        }
//        file_put_contents("tres.txt", json_encode($pics));
//        $pics = array_unique($pics);
        if ($times_success > 0) {
            $rs = array("code" => "0", "result" => "ok", "pic_url" => $pic_url);
        } else {
            $rs = array("code" => "config", "result" => "上传出错,请稍候再试!");
        }
        return $rs;
    }
标签: 上传
声明:本文为原创文章,如需转载,请注明来源sucaihuo.com并保留原文链接:https://www.sucaihuo.com/js/1332.html
评论0
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791

1 2