>백엔드 개발 >PHP 튜토리얼 >iOS 다중 이미지 업로드 인터페이스, 도움이 되셨나요?

iOS 다중 이미지 업로드 인터페이스, 도움이 되셨나요?

WBOY
WBOY원래의
2016-09-14 09:41:251071검색

웹 측의 다중 이미지 업로드 테스트는 정확합니다. 이미지를 업로드하고 데이터베이스에 입력할 수 있지만 iOS에서는 이미지 하나만 업로드할 수 있어 다른 이미지를 덮어쓰게 됩니다. 이유가 뭐예요? 도와주세요, 긴급해요, 긴급해요! ! ! ! ! ! ! !

모델 레이어

공개 함수 up(){

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

//파일 접미사 이름을 가로채서 파일 형식을 확인하세요

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

// 파일 분류 부여 여부 확인

// 파일 형식 결정

//사진

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

//동영상

<code>                if($suffix=='mp4'){
                    $type=2;
                }else</code>

//음악

<code>                if($suffix=='mp3'){
                    $type=4;
                }else{
                    $type=3;
                }
            </code>

//업로드된 파일을 데이터베이스에 추가

<code>            $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 '上传失败';
        }
    }
}
</code>

//업로드 방법

<code>protected function upload(){</code>

// $files = $_FILES['업로드'];

<code>    $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;
    }
}
</code>

컨트롤러 레이어
//파일 업로드

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

답글 내용:

웹 측의 다중 이미지 업로드 테스트는 정확합니다. 이미지를 업로드하고 데이터베이스에 입력할 수 있지만 iOS에서는 이미지 하나만 업로드할 수 있어 다른 이미지를 덮어쓰게 됩니다. 이유가 뭐예요? 도와주세요, 긴급해요, 긴급해요! ! ! ! ! ! ! !

모델 레이어

공개 함수 up(){

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

//파일 접미사 이름을 가로채서 파일 형식을 확인하세요

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

// 파일 분류 부여 여부 확인

// 파일 형식 결정

//사진

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

//동영상

<code>                if($suffix=='mp4'){
                    $type=2;
                }else</code>

//음악

<code>                if($suffix=='mp3'){
                    $type=4;
                }else{
                    $type=3;
                }
            </code>

//업로드된 파일을 데이터베이스에 추가

<code>            $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 '上传失败';
        }
    }
}
</code>

//업로드 방법

<code>protected function upload(){</code>

// $files = $_FILES['업로드'];

<code>    $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;
    }
}
</code>

컨트롤러 레이어
//파일 업로드

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

iOS가 인터페이스를 사용할 때 한 번에 여러 이미지를 요청합니까? 아니면 여러 장의 사진을 여러 번 업로드하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.