concrete/controllers/backend/file.php
protected function downloadRemoteURL($url, $temporaryDirectory)
    {
        $client = $this->app->make('http/client');
        $request = $client->getRequest()->setUri($url);
        $response = $client->send();
        if (!$response->isSuccess()) {
            throw new UserMessageException(t(/*i18n: %1$s is an URL, %2$s is an error message*/'There was an error downloading "%1$s": %2$s', $url, $response->getReasonPhrase() . ' (' . $response->getStatusCode() . ')'));
        }
        $headers = $response->getHeaders();
        // figure out a filename based on filename, mimetype, ???
        $matches = null;
        if (preg_match('/^[^#\?]+[\\/]([-\w%]+\.[-\w%]+)($|\?|#)/', $request->getUri(), $matches)) {
            // got a filename (with extension)... use it
            $filename = $matches[1];
        } else {
            $contentType = $headers->get('ContentType')->getFieldValue();
            if ($contentType) {
                list($mimeType) = explode(';', $contentType, 2);
                $mimeType = trim($mimeType);
                // use mimetype from http response
                $extension = $this->app->make('helper/mime')->mimeToExtension($mimeType);
                if ($extension === false) {
                    throw new UserMessageException(t('Unknown mime-type: %s', h($mimeType)));
                }
                $filename = date('Y-m-d_H-i_') . mt_rand(100, 999) . '.' . $extension;
            } else {
                throw new UserMessageException(t(/*i18n: %s is an URL*/'Could not determine the name of the file at %s', $url));
            }
        }
        $fullFilename = $temporaryDirectory . '/' . $filename;
        // write the downloaded file to a temporary location on disk
        $handle = fopen($fullFilename, 'wb');
        fwrite($handle, $response->getBody());
        fclose($handle);

        return $fullFilename;
    }
protected function downloadRemoteURL($url, $temporaryDirectory)
    {
        $client = $this->app->make('http/client');
        $request = $client->getRequest()->setUri($url);
        $response = $client->send();
        if (!$response->isSuccess()) {
            throw new UserMessageException(t(/*i18n: %1$s is an URL, %2$s is an error message*/'There was an error downloading "%1$s": %2$s', $url, $response->getReasonPhrase() . ' (' . $response->getStatusCode() . ')'));
        }
        $headers = $response->getHeaders();
        // figure out a filename based on filename, mimetype, ???
        $matches = null;
        if (preg_match('/^[^#\?]+[\\/]([-\w%]+\.[-\w%]+)($|\?|#)/', $request->getUri(), $matches)) {
            // got a filename (with extension)... use it
            $filename = $matches[1];
        } else {
            $contentType = $headers->get('ContentType')->getFieldValue();
            if ($contentType) {
                list($mimeType) = explode(';', $contentType, 2);
                $mimeType = trim($mimeType);
                // use mimetype from http response
                $extension = $this->app->make('helper/mime')->mimeToExtension($mimeType);
                if ($extension === false) {
                    throw new UserMessageException(t('Unknown mime-type: %s', h($mimeType)));
                }
                $filename = date('Y-m-d_H-i_') . mt_rand(100, 999) . '.' . $extension;
            } else {
                throw new UserMessageException(t(/*i18n: %s is an URL*/'Could not determine the name of the file at %s', $url));
            }
        }
        $fullFilename = $temporaryDirectory . '/' . $filename;
        // write the downloaded file to a temporary location on disk
        $handle = fopen($fullFilename, 'wb');
        fwrite($handle, $response->getBody());
        fclose($handle);

        return $fullFilename;
    }
protected function downloadRemoteURL ( $ url , $ temporaryDirectory ) { $ client = $ this -> app -> make ( 'http/client' ) ; $ request = $ client -> getRequest ( ) -> setUri ( $ url ) ; $ response = $ client -> send ( ) ; if ( ! $ response -> isSuccess ( ) ) { throw new UserMessageException ( t ( /*i18n: %1$s is an URL, %2$s is an error message*/ 'There was an error downloading "%1$s": %2$s' , $ url , $ response -> getReasonPhrase ( ) . ' (' . $ response -> getStatusCode ( ) . ')' ) ) ; } $ headers = $ response -> getHeaders ( ) ; // figure out a filename based on filename, mimetype, ??? $ matches = null ; if ( preg_match ( '/^[^#\?]+[\\/]([-\w%]+\.[-\w%]+)($|\?|#)/' , $ request -> getUri ( ) , $ matches ) ) { // got a filename (with extension)... use it $ filename = $ matches [ 1 ] ; } else { $ contentType = $ headers -> get ( 'ContentType' ) -> getFieldValue ( ) ; if ( $ contentType ) { list ( $ mimeType ) = explode ( ';' , $ contentType , 2 ) ; $ mimeType = trim ( $ mimeType ) ; // use mimetype from http response $ extension = $ this -> app -> make ( 'helper/mime' ) -> mimeToExtension ( $ mimeType ) ; if ( $ extension === false ) { throw new UserMessageException ( t ( 'Unknown mime-type: %s' , h ( $ mimeType ) ) ) ; } $ filename = date ( 'Y-m-d_H-i_' ) . mt_rand ( 100 , 999 ) . '.' . $ extension ; } else { throw new UserMessageException ( t ( /*i18n: %s is an URL*/ 'Could not determine the name of the file at %s' , $ url ) ) ; } } $ fullFilename = $ temporaryDirectory . '/' . $ filename ; // write the downloaded file to a temporary location on disk $ handle = fopen ( $ fullFilename , 'wb' ) ; fwrite ( $ handle , $ response -> getBody ( ) ) ; fclose ( $ handle ) ; return $ fullFilename ; }
Download an URL to the temporary directory.

@param string $url
@param string $temporaryDirectory

@throws \Concrete\Core\Error\UserMessageException in case of errors

@return string the local filename
Download an URL to the temporary directory .