Heim  >  Artikel  >  Backend-Entwicklung  >  iOS-Schnittstelle zum Hochladen mehrerer Bilder, Hilfe?

iOS-Schnittstelle zum Hochladen mehrerer Bilder, Hilfe?

WBOY
WBOYOriginal
2016-09-14 09:41:251044Durchsuche

Mein Multi-Image-Upload-Test auf der Webseite ist korrekt. Unter iOS funktioniert es jedoch nicht, wodurch andere Bilder überschrieben werden ist der Grund? Hilfe, dringend, dringend! ! ! ! ! ! ! !

Modellebene

öffentliche Funktion up(){

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

//Fängt den Dateisuffixnamen ab, um festzustellen, um welchen Dateityp es sich handelt

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

// Bestimmen Sie, ob die Dateiklassifizierung angegeben ist

// Dateityp bestimmen

// Bild

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

// Video

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

// Musik

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

//Fügen Sie die hochgeladene Datei zur Datenbank hinzu

<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>

//Upload-Methode

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

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

<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>

Controller-Ebene
//Datei hochladen

<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>

Antwortinhalt:

Mein Multi-Image-Upload-Test auf der Webseite ist korrekt. Unter iOS funktioniert es jedoch nicht, wodurch andere Bilder überschrieben werden ist der Grund? Hilfe, dringend, dringend! ! ! ! ! ! ! !

Modellebene

öffentliche Funktion up(){

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

//Fängt den Dateisuffixnamen ab, um festzustellen, um welchen Dateityp es sich handelt

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

// Bestimmen Sie, ob die Dateiklassifizierung angegeben ist

// Dateityp bestimmen

// Bild

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

// Video

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

// Musik

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

//Fügen Sie die hochgeladene Datei zur Datenbank hinzu

<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>

//Upload-Methode

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

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

<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>

Controller-Ebene
//Datei hochladen

<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>

Wenn iOS Ihre Benutzeroberfläche verwendet, fordert es dann mehrere Bilder gleichzeitig an? Oder laden Sie mehrere Bilder mehrmals hoch!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn