1
0
Fork 0

Add RemoteFilesystem::getRemoteContents() extension point

pull/6985/head
Nicolas Grekas 2018-01-07 19:00:12 +01:00
parent 20699905ab
commit 5601f07bfa
1 changed files with 17 additions and 1 deletions

View File

@ -297,7 +297,7 @@ class RemoteFilesystem
$errorMessage .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); $errorMessage .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg);
}); });
try { try {
$result = file_get_contents($fileUrl, false, $ctx); list($http_response_header, $result) = $this->getRemoteContents($originUrl, $fileUrl, $ctx);
$contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null; $contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null;
if ($contentLength && Platform::strlen($result) < $contentLength) { if ($contentLength && Platform::strlen($result) < $contentLength) {
@ -538,6 +538,22 @@ class RemoteFilesystem
return $result; return $result;
} }
/**
* Get contents of remote URL.
*
* @param string $originUrl The origin URL
* @param string $fileUrl The file URL
* @param resource $context The stream context
*
* @return array The response headers and the contents
*/
protected function getRemoteContents($originUrl, $fileUrl, $context)
{
$contents = file_get_contents($fileUrl, false, $context);
return array($http_response_header, $contents);
}
/** /**
* Get notification action. * Get notification action.
* *