欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

ios 多图片上传接口,求助?

程序员文章站 2022-04-25 16:37:04
...
我在web端的多图片上传测试是正确的,可以上传图片,也可以录入数据库,但是在ios就不行,只能上传一张图片,会把其它图片覆盖掉,这是什么原因呢,求助,急急急!!!!!!!!

Model层

public function up(){

    if($_FILES['upload']['error'][0]==0){
        //调用文件上传的方法
        $info = $this ->upload();
        foreach($info as $info_v){

// 截取文件后缀名,判断是什么类型文件

            $suffix = substr(strrchr($info_v['upload'],'.'),1);

// 判断文件分类是否给定

// 判断文件类型

// 图片

                if($suffix=='jpg'||$suffix=='gif'||$suffix=='png'||$suffix=='jpeg'){
                    $type=1;
                }else

// 视频

                if($suffix=='mp4'){
                    $type=2;
                }else

// 音乐

                if($suffix=='mp3'){
                    $type=4;
                }else{
                    $type=3;
                }
            

// 将上传文件添加到数据库

            $id = $this->add(array('user_id'=>1,'upload_url'=>$info_v['upload'],'c_time'=>NOW_TIME,'size'=>$info_v['size'],'type'=>$type));
        }
        if($id){
            return $id;
        }else{
            return '上传失败';
        }
    }
}

// 上传方法

protected function upload(){

// $files = $_FILES['upload'];

    $upload = new \Think\Upload();// 实例化上传类
    //C方法是用来读取配置信息
    $upload->maxSize   =     C('maxSize') ;// 设置附件上传大小
    $upload->exts      =     C('exts');// 设置附件上传类型
    $upload->savePath  =     C('savePath'); // 设置附件上传目录
    $upload->saveName  =     C('saveName'); //  设置上传文件的保存规则
    $upload->rootPath  =     C('rootPath');
    // 上传文件
    $info   =   $upload->upload();
    //         print_r($info);die;
    $img_arr=array();
    if(!$info) {
        // 上传错误提示错误信息
        return $upload->getError();
    }else{
        foreach ($info as $k=>$v){
            //拼接文件存储路径
            $img_url = C('img_path').$v['savepath'].$v['savename'];
            $img_arr[$k]['upload']= $img_url;
            $img_arr[$k]['size']= $v['size'];
        }
        return $img_arr;
    }
}

Controller 层
// 上传文件

public function index(){
    if(IS_POST){
    //     调用模型层的方法
        $id = $this->upload->up();
        if(is_numeric($id)){
            $data = array(
                    'success'=>true,
                    'message'=>'上传成功',
                    'data'=>'',
            );
            echo json_encode($data);
        }
    }
}

回复内容:

我在web端的多图片上传测试是正确的,可以上传图片,也可以录入数据库,但是在ios就不行,只能上传一张图片,会把其它图片覆盖掉,这是什么原因呢,求助,急急急!!!!!!!!

Model层

public function up(){

    if($_FILES['upload']['error'][0]==0){
        //调用文件上传的方法
        $info = $this ->upload();
        foreach($info as $info_v){

// 截取文件后缀名,判断是什么类型文件

            $suffix = substr(strrchr($info_v['upload'],'.'),1);

// 判断文件分类是否给定

// 判断文件类型

// 图片

                if($suffix=='jpg'||$suffix=='gif'||$suffix=='png'||$suffix=='jpeg'){
                    $type=1;
                }else

// 视频

                if($suffix=='mp4'){
                    $type=2;
                }else

// 音乐

                if($suffix=='mp3'){
                    $type=4;
                }else{
                    $type=3;
                }
            

// 将上传文件添加到数据库

            $id = $this->add(array('user_id'=>1,'upload_url'=>$info_v['upload'],'c_time'=>NOW_TIME,'size'=>$info_v['size'],'type'=>$type));
        }
        if($id){
            return $id;
        }else{
            return '上传失败';
        }
    }
}

// 上传方法

protected function upload(){

// $files = $_FILES['upload'];

    $upload = new \Think\Upload();// 实例化上传类
    //C方法是用来读取配置信息
    $upload->maxSize   =     C('maxSize') ;// 设置附件上传大小
    $upload->exts      =     C('exts');// 设置附件上传类型
    $upload->savePath  =     C('savePath'); // 设置附件上传目录
    $upload->saveName  =     C('saveName'); //  设置上传文件的保存规则
    $upload->rootPath  =     C('rootPath');
    // 上传文件
    $info   =   $upload->upload();
    //         print_r($info);die;
    $img_arr=array();
    if(!$info) {
        // 上传错误提示错误信息
        return $upload->getError();
    }else{
        foreach ($info as $k=>$v){
            //拼接文件存储路径
            $img_url = C('img_path').$v['savepath'].$v['savename'];
            $img_arr[$k]['upload']= $img_url;
            $img_arr[$k]['size']= $v['size'];
        }
        return $img_arr;
    }
}

Controller 层
// 上传文件

public function index(){
    if(IS_POST){
    //     调用模型层的方法
        $id = $this->upload->up();
        if(is_numeric($id)){
            $data = array(
                    'success'=>true,
                    'message'=>'上传成功',
                    'data'=>'',
            );
            echo json_encode($data);
        }
    }
}

ios掉用你接口的时候是不是多图一次性请求的!还是多图多次上传!

相关标签: php ios