zoukankan      html  css  js  c++  java
  • Python/PHP 远程文件/图片 下载

    php 实现远程图片下载并保存到本地

    /* 
    *功能:php完美实现下载远程图片保存到本地 
    *参数:文件url,保存文件目录,保存文件名称,使用的下载方式 
    *当保存文件名称为空时则使用远程文件原来的名称 
    */ 
    function getImage($url,$save_dir='',$filename='',$type=0){ 
        if(trim($url)==''){ 
            return array('file_name'=>'','save_path'=>'','error'=>1); 
        } 
        if(trim($save_dir)==''){ 
            $save_dir='./'; 
        } 
        if(trim($filename)==''){//保存文件名 
            $ext=strrchr($url,'.'); 
            if($ext!='.gif'&&$ext!='.jpg'){ 
                return array('file_name'=>'','save_path'=>'','error'=>3); 
            } 
            $filename=time().$ext; 
        } 
        if(0!==strrpos($save_dir,'/')){ 
            $save_dir.='/'; 
        } 
        //创建保存目录 
        if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){ 
            return array('file_name'=>'','save_path'=>'','error'=>5); 
        } 
        //获取远程文件所采用的方法  
        if($type){ 
            $ch=curl_init(); 
            $timeout=5; 
            curl_setopt($ch,CURLOPT_URL,$url); 
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
            curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
            $img=curl_exec($ch); 
            curl_close($ch); 
        }else{ 
            ob_start();  
            readfile($url); 
            $img=ob_get_contents();  
            ob_end_clean();  
        } 
        //$size=strlen($img); 
        //文件大小  
        $fp2=@fopen($save_dir.$filename,'a'); 
        fwrite($fp2,$img); 
        fclose($fp2); 
        unset($img,$url); 
        return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); 
    } 
    
    $file_url = "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1910813120.jpg";
    
    getImage($file_url);

    注意下载路径需要有写入的权限

    运行程序后会将图片保存到当前路径下,如图:

    Python 实现远程图片下载并保存到本地

    def save_img(url):
        import requests
        import os
        file_name = url.split("/")[-1]
        try:
            r = requests.get(url)
        except:
            print("远程连接错误")
            return -1
        try:
            if not os.path.exists("movie"):
                os.makedirs("movie")
            os.chdir("movie")
            with open(file_name, 'wb') as f:
                f.write(r.content)
        except:
            print("文件保存错误")
            return -1
    if save_img(url) == -1:
        print("Download Error")
    else:
        print("Download Succeed!")

    判断当前路径下是否存在 movie 文件夹,不存在则创建;

    切换到 movie 文件夹下;

    将远程图片以二进制文件的形式写入;

    执行成功后会在当前路径下生成一个 movie/p1910813120.jpg

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/ryanzheng/p/9747655.html
Copyright © 2011-2022 走看看