diff options
-rw-r--r-- | includes/file.inc | 10 | ||||
-rw-r--r-- | includes/stream_wrappers.inc | 35 |
2 files changed, 20 insertions, 25 deletions
diff --git a/includes/file.inc b/includes/file.inc index a09751574..36e7893ed 100644 --- a/includes/file.inc +++ b/includes/file.inc @@ -203,7 +203,7 @@ function file_stream_wrapper_valid_scheme($scheme) { } /** - * Returns the target of a URI (e.g. a stream). + * Returns the part of an URI after the schema. * * @param $uri * A stream, referenced as "scheme://target". @@ -216,10 +216,10 @@ function file_stream_wrapper_valid_scheme($scheme) { * @see file_uri_scheme() */ function file_uri_target($uri) { - if ($scheme = file_uri_scheme($uri)) { - return file_stream_wrapper_get_instance_by_scheme($scheme)->getTarget($uri); - } - return FALSE; + $data = explode('://', $uri, 2); + + // Remove erroneous leading or trailing, forward-slashes and backslashes. + return count($data) == 2 ? trim($data[1], '\/') : FALSE; } /** diff --git a/includes/stream_wrappers.inc b/includes/stream_wrappers.inc index 553628912..a78374c96 100644 --- a/includes/stream_wrappers.inc +++ b/includes/stream_wrappers.inc @@ -146,24 +146,6 @@ interface DrupalStreamWrapperInterface extends StreamWrapperInterface { public function getExternalUrl(); /** - * Returns the local writable target of the resource within the stream. - * - * This function should be used in place of calls to realpath() or similar - * functions when attempting to determine the location of a file. While - * functions like realpath() may return the location of a read-only file, this - * method may return a URI or path suitable for writing that is completely - * separate from the URI used for reading. - * - * @param $uri - * Optional URI. - * - * @return - * Returns a string representing a location suitable for writing of a file, - * or FALSE if unable to write to the file such as with read-only streams. - */ - public function getTarget($uri = NULL); - - /** * Returns the MIME type of the resource. * * @param $uri @@ -286,9 +268,22 @@ abstract class DrupalLocalStreamWrapper implements DrupalStreamWrapperInterface } /** - * Base implementation of getTarget(). + * Returns the local writable target of the resource within the stream. + * + * This function should be used in place of calls to realpath() or similar + * functions when attempting to determine the location of a file. While + * functions like realpath() may return the location of a read-only file, this + * method may return a URI or path suitable for writing that is completely + * separate from the URI used for reading. + * + * @param $uri + * Optional URI. + * + * @return + * Returns a string representing a location suitable for writing of a file, + * or FALSE if unable to write to the file such as with read-only streams. */ - function getTarget($uri = NULL) { + protected function getTarget($uri = NULL) { if (!isset($uri)) { $uri = $this->uri; } |