1
0
Fork 0

Merge branch '1.0'

pull/5276/head
Jordi Boggiano 2016-04-29 16:03:14 +01:00
commit 36665d791d
1 changed files with 4 additions and 5 deletions

View File

@ -279,7 +279,8 @@ class RemoteFilesystem
try { try {
$result = file_get_contents($fileUrl, false, $ctx); $result = file_get_contents($fileUrl, false, $ctx);
if ($this->bytesMax && Platform::strlen($result) < $this->bytesMax) { $contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null;
if ($contentLength && Platform::strlen($result) < $contentLength) {
// alas, this is not possible via the stream callback because STREAM_NOTIFY_COMPLETED is documented, but not implemented anywhere in PHP // alas, this is not possible via the stream callback because STREAM_NOTIFY_COMPLETED is documented, but not implemented anywhere in PHP
throw new TransportException('Content-Length mismatch'); throw new TransportException('Content-Length mismatch');
} }
@ -527,14 +528,12 @@ class RemoteFilesystem
break; break;
case STREAM_NOTIFY_FILE_SIZE_IS: case STREAM_NOTIFY_FILE_SIZE_IS:
if ($this->bytesMax < $bytesMax) {
$this->bytesMax = $bytesMax; $this->bytesMax = $bytesMax;
}
break; break;
case STREAM_NOTIFY_PROGRESS: case STREAM_NOTIFY_PROGRESS:
if ($this->bytesMax > 0 && $this->progress) { if ($this->bytesMax > 0 && $this->progress) {
$progression = round($bytesTransferred / $this->bytesMax * 100); $progression = min(100, round($bytesTransferred / $this->bytesMax * 100));
if ((0 === $progression % 5) && 100 !== $progression && $progression !== $this->lastProgress) { if ((0 === $progression % 5) && 100 !== $progression && $progression !== $this->lastProgress) {
$this->lastProgress = $progression; $this->lastProgress = $progression;