diff --git a/lib/Thumbor/Url.php b/lib/Thumbor/Url.php index 5a7c0eb..e0ee559 100755 --- a/lib/Thumbor/Url.php +++ b/lib/Thumbor/Url.php @@ -20,10 +20,29 @@ public function __construct($server, $secret, $original, $commands) { $this->server = $server; $this->secret = $secret; - $this->original = $original; + $this->original = self::parseOriginalUrl($original); $this->commands = $commands; } + /** + * Produce a encoded URL. + * @param string $original URL of original image + * @return string + */ + private function parseOriginalUrl($original) + { + $scheme = parse_url($original, PHP_URL_SCHEME); + if ($scheme) { + $scheme .= '://'; + $original = str_replace($scheme, '', $original); + } + + $original = implode('/', array_map('rawurlencode', explode('/', $original))); + $original = $scheme . $original; + + return $original; + } + /** * Produce a URL to an image on a Thumbor server according to the specified * options.