thinkphp3.2 后台获取app前端多个图片上传及参数 的接口写法(upload()函数)

描述:app前端传参,有多个图片 和 多个参数,用thinkphp写个上传接口

两个函数
addReport() //把数据写入数据库,并返回json给前端
_upload() //循环读取图片,返回值是 图片的web访问地址列表
代码如下:

   /**
     * 上传测试接口(不需要任何参数)
     * @param  {string} addr:地址,longitude:经度,latitude:纬度
     * @return {json} 成功返回图片路径及参数
    */

    public function addReport()
    {
        $tmp = file_get_contents("php://input");
        $arr = json_decode($tmp,true);

        $picList = $this->_upload();//调用图片上传函数
        if(!$picList){
            $this->error('图片上传失败');
        }

        $i = 1;
        foreach ($picList as $value) {
            $key = 'pic'.$i;
            $data[$key] = $value;
            $i++;
        }

        $data['addr'] = $arr['addr']?$arr['addr']:I('addr');
        $data['longitude'] = $arr['longitude']?$arr['longitude']:I('longitude');
        $data['latitude'] = $arr['latitude']?$arr['latitude']:I('latitude');
        if(M('Report')->add($data)){
            $this->success($data,'成功');
        }else{
            $this->error('存储失败');
        }

    }

    /**
     * 多个图像上传
     * @param {string} $type: 存储类型 report:投诉 ,avatar:头像,logo:厂家logo,ad:广告图片
     * @return {array} $arr 图片web地址列表
     */
    public function _upload($type = 'report'){
        $config = array(
            'maxSize'    =>    3145728,
            'rootPath'   =>    'up/'.$type.'/',
            'savePath'   =>    '',
            'saveName'   =>    array('uniqid',''),
            'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),
            'autoSub'    =>    true,
            'subName'    =>    array('date','Ymd'),
        );
        $baseUrl = C('SITE_URL').'up/'.$type.'/';//例如:http://www.baidu.com/up/report/
        $upload = new \Think\Upload($config);// 实例化上传类
        // 上传文件 
        $info = $upload->upload();

        $arr = array();
        $i = 0;
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());
        }else{// 上传成功
            foreach($info as $file){ //循环存储图片到服务器
                $subUrl = $file['savepath'].$file['savename'];//例如:20140125/dfuosi203.jpg
                $arr[$i++] = $baseUrl.$subUrl;
            }
            return $arr;
        }

    }

建议:自己用postman 测试上传接口,不要等着前端跟你联调,很浪费时间,本地测试的post及返回结果如下:
这里写图片描述

其他注意事项:
网站根目录下的 up目录及附属目录 是否已经创建好,可写权限是否已经开启(比如本案例,需要 up目录下创建 report 目录,并赋予可写权限,linux下,命令行里,直接进入到项目根目录,然后输入: chmod -R 777 up)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值