php Curl保存远程服务器图片

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

时间: 2024-10-23 10:26:11

php Curl保存远程服务器图片的相关文章

php 保存远程服务器图片代码

php 保存远程服务器图片代码 <?php function getmicrotime(){     list($usec, $sec) = explode(" ",microtime());     return ((float)$usec + (float)$sec); } function SaveHTTPFile($fFileHTTPPath,$fFileSavePath,$fFileSaveName) {  //记录程序开始的时间  $BeginTime=getmicr

asp 保存远程服务器图片到本地

'================================================== '过程名:SaveRemoteFile '作 用:保存远程的文件到本地 '参 数:LocalFileName ------ 本地文件名 '参 数:RemoteFileUrl ------ 远程文件URL '================================================== sub SaveRemoteFile(LocalFileName,RemoteFileU

php 保存远程服务器上图片

php 保存远程服务器上图片,其实这也叫采集了,把远程服务器的图片保存到自己服务器上来,和采集文章差不多,采集图片就加一个header('content-type:image/png');申明文章的内容的类型,而文章就没必要了. <?php header('content-type:image/png'); echo file_get_contents("http://www.111cn.net/blog/upload/image/20080615055512.png"); ?&

PHP使用CURL向远程服务器上传图片的原理

如果图片等资源服务器是远程的,图片上传可以通过cURL方式传到远程服务器,本文简单介绍PHP使用cURL向远程服务器上传图片的原理. 通过cURL传送图片代码片段: $data = array('img'=>'@'. dirname(__FILE__).'/img/1.jpg'); 注意,PHP5.5后不能使用@表示文件. 在文件名前加上@语法表示上传文件,这在PHP5.3中是正常的,但是在PHP5.6中彻底废除了@语法,导致上传图片无法使用. //支持远程文件上传 if(empty($urli

asp 复制文件与保存远程服务器文件

 '==============================  '函 数 名:CopyFiles  '作    用:复制文件  '参    数:文件来源地址SourcePath,文件复制到地址CopyToPath  '==============================  Function CopyFiles(SourcePath,CopyToPath)   Set Fso=Server.CreateObject("Scri"&"pting.File&qu

php curl与fopen下载远程服务器图片实例

fopen函数  代码如下 复制代码 <?php  function get_file($url,$folder,$pic_name){    set_time_limit(24*60*60); //限制最大的执行时间   $destination_folder=$folder?$folder.'/':''; //文件下载保存目录   $newfname=$destination_folder.$pic_name;//文件PATH   $file=fopen($url,'rb');      i

php curl自动采集远程服务器图片方法

 代码如下 复制代码 <?php $url = "http://www.111cn.net/img/logo.jpg"; $filename = 'curl.gif'; getImg($url, $filename); /* *@通过curl方式获取制定的图片到本地 *@ 完整的图片地址 *@ 要存储的文件名 */ function getImg($url = "", $filename = "") { if(is_dir(basename

保存远程图片到本地服务器几种方法[php,asp]

function get_file($url,$folder){    set_time_limit (24 * 60 * 60);       $destination_folder = $folder?$folder.'/':'';//文件下载保存目录            $newfname = $destination_folder . basename($url);    $file = fopen ($url, "rb");    if ($file) {    $newf

php保存远程图片

,我们欺骗主机的方法来做,就是用fsockopen向主机发送一个用户包 function get_remote($body){  set_time_limit(0);  $img_array = array();  $img_path = "get_pic/";  preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isU",$body,$img_array);  $