Heim  >  Artikel  >  Backend-Entwicklung  >  PHP verwendet CURL, um Bilder von den Servern anderer Leute in Ihren eigenen Bild-Cloud-Bereich hochzuladen

PHP verwendet CURL, um Bilder von den Servern anderer Leute in Ihren eigenen Bild-Cloud-Bereich hochzuladen

零到壹度
零到壹度Original
2018-04-10 16:36:412454Durchsuche

Wenn Sie im Hintergrund Bilder von den Servern anderer Personen erhalten und diese in Ihren eigenen Cloud-Bereich hochladen möchten, müssen Sie die Bilder im Hintergrund hochladen, also müssen Sie zum Hochladen CURL verwenden.

/**
     * 图片上传
     * @author Dong
     * @date   2018-04-08
     * @param  [type]     $url  文件路径
     * @param  [type]     $type 文件类型
     */
    function upload_im_img($url,$type){
        // 二进制文件上传
        $file= file_get_contents($url);
        $filename = 'Filedata';//上传到$_FILES数组中的 key 
        $name = uniqid('',true).'.'.$type;//文件名 
        $type = 'image/jpeg';//文件类型 
         
        $key = "$filename\"; filename=\"$name\r\nContent-Type: $type\r\n"; 
        $fields[$key] = $file;  
        //将图片上传到七牛返回图片路径
        $ch = curl_init ();
        $url = 'http://你的域名.com/api/uploadqiniu.html';  
        curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);  
        curl_setopt ( $ch, CURLOPT_URL, $url );  
        curl_setopt ( $ch, CURLOPT_POST, 1 );  
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );  
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
        $filename= curl_exec ( $ch );
        $filename = substr($filename,3);//进行截取
        return  $fileurl;
    }

Ich lade ein binäres Stream-Bild hoch. Wenn es sich um Text handelt, müssen Sie das Suffix von $type und ¥name ändern. Die URL, die ich hier habe, ist die eigene Upload-Bildklasse von TP. Ich habe gerade die Konfiguration geändert, sie direkt in den Qiniu Cloud Space hochgeladen und dann den Bildnamen zurückgegeben. Beachten Sie, dass vor $fileurl immer ein roter Punkt steht, wenn ich es zurückgebe, also habe ich es abgefangen.

function uploadqiniu(){
        $exts = array('bmp','jpg', 'tif','tiff','gif', 'png', 'jpeg','xls','xlsx','dwg','dxf','hom','zip','txt','max','3ds','obj','fbx');
        if (!empty($_FILES)) {
            //图片上传设置
            $config = array(
                'maxSize'    =>    30*1024*1024, //设置附件上传大小  30MB = 31457280;
                'savePath'   =>    '',
                'saveName'   =>    array('uniqid',''),//
                'exts'       =>    $exts,
                'autoSub'    =>    false,
                'subName'    =>    '',//保存后缀,
            );
            $driverConfig = array (
                'accessKey' => C('PIC_AK'),
                'secretKey' => C('PIC_SK'),
                'domain' => C('PIC_DOMAIN'),
                'bucket' => C('PIC_BUCKET'),
            );
    
            $Upload = new \Think\Upload($config,'Qiniu',$driverConfig);
            $return_img = $Upload->upload($_FILES);
            //判断是否有图
            if($return_img){
                $filename = $return_img['Filedata']['savename'];
                echo $filename;
            }else{
                $this->error($Upload->getError());//获取失败信息
            }
            
        }

    }

Es ist sehr einfach, Bilder direkt auf Qiniu hochzuladen. Fügen Sie einfach zwei weitere Parameter nach der Upload-Methode hinzu, und fertig.

Das obige ist der detaillierte Inhalt vonPHP verwendet CURL, um Bilder von den Servern anderer Leute in Ihren eigenen Bild-Cloud-Bereich hochzuladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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