Maison >développement back-end >tutoriel php >PHP utilise CURL pour télécharger des images de serveurs d'autres personnes vers votre propre espace cloud d'images

PHP utilise CURL pour télécharger des images de serveurs d'autres personnes vers votre propre espace cloud d'images

零到壹度
零到壹度original
2018-04-10 16:36:412515parcourir

Si vous obtenez des images de serveurs d'autres personnes en arrière-plan et que vous souhaitez les télécharger sur votre propre espace cloud, vous devez télécharger les images en arrière-plan, vous devez donc utiliser CURL pour les télécharger.

/**
     * 图片上传
     * @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;
    }

Je télécharge une image de flux binaire. S'il s'agit de texte, vous devez modifier le suffixe de $type et ¥name. L'URL que j'ai ici est la propre classe d'image de téléchargement de TP. Je viens de modifier la configuration et de la télécharger directement sur Qiniu Cloud Space, puis j'ai renvoyé le nom de l'image. Notez qu'il y a toujours un point rouge devant $fileurl lorsque je le renvoie, je l'ai donc intercepté.

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());//获取失败信息
            }
            
        }

    }

Il est très simple de télécharger des images directement sur Qiniu. Ajoutez simplement 2 paramètres supplémentaires après la méthode de téléchargement, et c'est tout.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn