Home  >  Article  >  php教程  >  php Curl保存远程服务器图片

php Curl保存远程服务器图片

WBOY
WBOYOriginal
2016-06-08 17:29:081115browse

php Curl保存远程服务器图片

function LoadImageCURL($save_to){
        $ch = curl_init($this->source);
        $fp = fopen($save_to, "wb");
       
        // set URL and other appropriate options
        $options = array(CURLOPT_FILE => $fp,
                         CURLOPT_HEADER => 0,
                         CURLOPT_FOLLOWLOCATION => 1,
                         CURLOPT_TIMEOUT => 60); // 1 minute timeout (should be enough)
       
        curl_setopt_array($ch, $options);
       
        curl_exec($ch);
        curl_close($ch);
        fclose($fp);

    }

 

$info = @GetImageSize($this->source);
    $mime = $info['mime'];
   
// What sort of image?
    $type = substr(strrchr($mime, '/'), 1);
    switch ($type){
        case 'jpeg':
            $image_create_func = 'ImageCreateFromJPEG';
            $image_save_func = 'ImageJPEG';
            $new_image_ext = 'jpg';
       
            // Best Quality: 100
            $quality = isSet($this->quality) ? $this->quality : 100;
            break;
       
        case 'png':
            $image_create_func = 'ImageCreateFromPNG';
            $image_save_func = 'ImagePNG';
            $new_image_ext = 'png';
       
            // Compression Level: from 0  (no compression) to 9
            $quality = isSet($this->quality) ? $this->quality : 0;
            break;
       
        case 'bmp':
            $image_create_func = 'ImageCreateFromBMP';
            $image_save_func = 'ImageBMP';
            $new_image_ext = 'bmp';
            break;
       
        case 'gif':
            $image_create_func = 'ImageCreateFromGIF';
            $image_save_func = 'ImageGIF';
            $new_image_ext = 'gif';

            break;
       
        case 'vnd.wap.wbmp':
            $image_create_func = 'ImageCreateFromWBMP';
            $image_save_func = 'ImageWBMP';
            $new_image_ext = 'bmp';
            break;
       
        case 'xbm':
            $image_create_func = 'ImageCreateFromXBM';
            $image_save_func = 'ImageXBM';
            $new_image_ext = 'xbm';
            break;
       
        default:
            $image_create_func = 'ImageCreateFromJPEG';
            $image_save_func = 'ImageJPEG';
            $new_image_ext = 'jpg';
    }
   
    if(isSet($this->set_extension)){
        $ext = strrchr($this->source, ".");
        $strlen = strlen($ext);
        $new_name = basename(substr($this->source, 0, -$strlen)).'.'.$new_image_ext;
    }else{
        $new_name = basename($this->source);
    }
   
    $save_to = $this->save_to."/blog_insert_temp_".time().mt_rand(1,99).".".$new_image_ext;
    //输出对象 组成跟$_FILE变量一样 得到后自己和平常图片上传处理一样了
    $img_info['name'] = basename($this->source);
    $img_info['type'] = $mime;
    $img_info['size'] = 1000;
    $img_info['tmp_name'] = $save_to;
    $img_info['error'] = 0;
       
    if($method == 'curl'){
        $save_image = $this->LoadImageCURL($save_to);
    }elseif($method == 'gd'){
        $img = $image_create_func($this->source);
   
            if(isSet($quality)){
               $save_image = $image_save_func($img, $save_to, $quality);
            }else{
               $save_image = $image_save_func($img, $save_to);
            }
          
    }
         return $img_info;
    }

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn