kernel/setup/steps/ezstep_site_types.php
function downloadFile( $url, $outDir, $forcedFileName = false )
    {
        $fileName = $outDir . "/" . ( $forcedFileName ? $forcedFileName : basename( $url ) );

        eZDebug::writeNotice( "Downloading file '$fileName' from $url" );

        // Create the out directory if not exists.
        if ( !file_exists( $outDir ) )
            eZDir::mkdir( $outDir, false, true );

        // First try CURL
        if ( extension_loaded( 'curl' ) )
        {
            $ch = curl_init( $url );
            $fp = eZStepSiteTypes::fopen( $fileName, 'wb' );

            if ( $fp === false )
            {
                $this->ErrorMsg = ezpI18n::tr( 'design/standard/setup/init', 'Cannot write to file' ) .
                    ': ' . $this->FileOpenErrorMsg;
                return false;
            }

            curl_setopt( $ch, CURLOPT_FILE, $fp );
            curl_setopt( $ch, CURLOPT_HEADER, 0 );
            curl_setopt( $ch, CURLOPT_FAILONERROR, 1 );
            curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
            // Get proxy
            $ini = eZINI::instance();
            $proxy = $ini->hasVariable( 'ProxySettings', 'ProxyServer' ) ? $ini->variable( 'ProxySettings', 'ProxyServer' ) : false;
            if ( $proxy )
            {
                curl_setopt ( $ch, CURLOPT_PROXY , $proxy );
                $userName = $ini->hasVariable( 'ProxySettings', 'User' ) ? $ini->variable( 'ProxySettings', 'User' ) : false;
                $password = $ini->hasVariable( 'ProxySettings', 'Password' ) ? $ini->variable( 'ProxySettings', 'Password' ) : false;
                if ( $userName )
                {
                    curl_setopt ( $ch, CURLOPT_PROXYUSERPWD, "$userName:$password" );
                }
            }

            if ( !curl_exec( $ch ) )
            {
                $this->ErrorMsg = curl_error( $ch );
                return false;
            }

            curl_close( $ch );
            fclose( $fp );
        }
        else
        {
            $parsedUrl = parse_url( $url );
            $checkIP = isset( $parsedUrl[ 'host' ] ) ? ip2long( gethostbyname( $parsedUrl[ 'host' ] ) ) : false;
            if ( $checkIP === false )
            {
                return false;
            }

            // If we don't have CURL installed we used standard fopen urlwrappers
            // Note: Could be blocked by not allowing remote calls.
            if ( !copy( $url, $fileName ) )
            {
                $buf = eZHTTPTool::sendHTTPRequest( $url, 80, false, 'eZ Publish', false );

                $header = false;
                $body = false;
                if ( eZHTTPTool::parseHTTPResponse( $buf, $header, $body ) )
                {
                    eZFile::create( $fileName, false, $body );
                }
                else
                {
                    $this->ErrorMsg = ezpI18n::tr( 'design/standard/setup/init', 'Failed to copy %url to local file %filename', null,
                                              array( "%url" => $url,
                                                     "%filename" => $fileName ) );
                    return false;
                }
            }
        }

        return $fileName;
    }
function downloadFile( $url, $outDir, $forcedFileName = false )
    {
        $fileName = $outDir . "/" . ( $forcedFileName ? $forcedFileName : basename( $url ) );

        eZDebug::writeNotice( "Downloading file '$fileName' from $url" );

        // Create the out directory if not exists.
        if ( !file_exists( $outDir ) )
            eZDir::mkdir( $outDir, false, true );

        // First try CURL
        if ( extension_loaded( 'curl' ) )
        {
            $ch = curl_init( $url );
            $fp = eZStepSiteTypes::fopen( $fileName, 'wb' );

            if ( $fp === false )
            {
                $this->ErrorMsg = ezpI18n::tr( 'design/standard/setup/init', 'Cannot write to file' ) .
                    ': ' . $this->FileOpenErrorMsg;
                return false;
            }

            curl_setopt( $ch, CURLOPT_FILE, $fp );
            curl_setopt( $ch, CURLOPT_HEADER, 0 );
            curl_setopt( $ch, CURLOPT_FAILONERROR, 1 );
            curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
            // Get proxy
            $ini = eZINI::instance();
            $proxy = $ini->hasVariable( 'ProxySettings', 'ProxyServer' ) ? $ini->variable( 'ProxySettings', 'ProxyServer' ) : false;
            if ( $proxy )
            {
                curl_setopt ( $ch, CURLOPT_PROXY , $proxy );
                $userName = $ini->hasVariable( 'ProxySettings', 'User' ) ? $ini->variable( 'ProxySettings', 'User' ) : false;
                $password = $ini->hasVariable( 'ProxySettings', 'Password' ) ? $ini->variable( 'ProxySettings', 'Password' ) : false;
                if ( $userName )
                {
                    curl_setopt ( $ch, CURLOPT_PROXYUSERPWD, "$userName:$password" );
                }
            }

            if ( !curl_exec( $ch ) )
            {
                $this->ErrorMsg = curl_error( $ch );
                return false;
            }

            curl_close( $ch );
            fclose( $fp );
        }
        else
        {
            $parsedUrl = parse_url( $url );
            $checkIP = isset( $parsedUrl[ 'host' ] ) ? ip2long( gethostbyname( $parsedUrl[ 'host' ] ) ) : false;
            if ( $checkIP === false )
            {
                return false;
            }

            // If we don't have CURL installed we used standard fopen urlwrappers
            // Note: Could be blocked by not allowing remote calls.
            if ( !copy( $url, $fileName ) )
            {
                $buf = eZHTTPTool::sendHTTPRequest( $url, 80, false, 'eZ Publish', false );

                $header = false;
                $body = false;
                if ( eZHTTPTool::parseHTTPResponse( $buf, $header, $body ) )
                {
                    eZFile::create( $fileName, false, $body );
                }
                else
                {
                    $this->ErrorMsg = ezpI18n::tr( 'design/standard/setup/init', 'Failed to copy %url to local file %filename', null,
                                              array( "%url" => $url,
                                                     "%filename" => $fileName ) );
                    return false;
                }
            }
        }

        return $fileName;
    }
function downloadFile ( $ url , $ outDir , $ forcedFileName = false ) { $ fileName = $ outDir . "/" . ( $ forcedFileName ? $ forcedFileName : basename ( $ url ) ) ; eZDebug :: writeNotice ( "Downloading file '$fileName' from $url" ) ; // Create the out directory if not exists. if ( ! file_exists ( $ outDir ) ) eZDir :: mkdir ( $ outDir , false , true ) ; // First try CURL if ( extension_loaded ( 'curl' ) ) { $ ch = curl_init ( $ url ) ; $ fp = eZStepSiteTypes :: fopen ( $ fileName , 'wb' ) ; if ( $ fp === false ) { $ this -> ErrorMsg = ezpI18n :: tr ( 'design/standard/setup/init' , 'Cannot write to file' ) . ': ' . $ this -> FileOpenErrorMsg ; return false ; } curl_setopt ( $ ch , CURLOPT_FILE , $ fp ) ; curl_setopt ( $ ch , CURLOPT_HEADER , 0 ) ; curl_setopt ( $ ch , CURLOPT_FAILONERROR , 1 ) ; curl_setopt ( $ ch , CURLOPT_CONNECTTIMEOUT , 30 ) ; // Get proxy $ ini = eZINI :: instance ( ) ; $ proxy = $ ini -> hasVariable ( 'ProxySettings' , 'ProxyServer' ) ? $ ini -> variable ( 'ProxySettings' , 'ProxyServer' ) : false ; if ( $ proxy ) { curl_setopt ( $ ch , CURLOPT_PROXY , $ proxy ) ; $ userName = $ ini -> hasVariable ( 'ProxySettings' , 'User' ) ? $ ini -> variable ( 'ProxySettings' , 'User' ) : false ; $ password = $ ini -> hasVariable ( 'ProxySettings' , 'Password' ) ? $ ini -> variable ( 'ProxySettings' , 'Password' ) : false ; if ( $ userName ) { curl_setopt ( $ ch , CURLOPT_PROXYUSERPWD , "$userName:$password" ) ; } } if ( ! curl_exec ( $ ch ) ) { $ this -> ErrorMsg = curl_error ( $ ch ) ; return false ; } curl_close ( $ ch ) ; fclose ( $ fp ) ; } else { $ parsedUrl = parse_url ( $ url ) ; $ checkIP = isset ( $ parsedUrl [ 'host' ] ) ? ip2long ( gethostbyname ( $ parsedUrl [ 'host' ] ) ) : false ; if ( $ checkIP === false ) { return false ; } // If we don't have CURL installed we used standard fopen urlwrappers // Note: Could be blocked by not allowing remote calls. if ( ! copy ( $ url , $ fileName ) ) { $ buf = eZHTTPTool :: sendHTTPRequest ( $ url , 80 , false , 'eZ Publish' , false ) ; $ header = false ; $ body = false ; if ( eZHTTPTool :: parseHTTPResponse ( $ buf , $ header , $ body ) ) { eZFile :: create ( $ fileName , false , $ body ) ; } else { $ this -> ErrorMsg = ezpI18n :: tr ( 'design/standard/setup/init' , 'Failed to copy %url to local file %filename' , null , array ( "%url" => $ url , "%filename" => $ fileName ) ) ; return false ; } } } return $ fileName ; }
Downloads file.

Sets $this->ErrorMsg in case of an error.

\private
\param $url            URL.
\param $outDir         Directory where to put downloaded file to.
\param $forcedFileName Force saving downloaded file under this name.
\return false on error, path to downloaded package otherwise.
Downloads file .