Completed
Pull Request — master (#10075)
by
unknown
27:10
created
lib/private/Command/FileAccess.php 2 patches
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -25,12 +25,12 @@
 block discarded – undo
25 25
 use OCP\IUser;
26 26
 
27 27
 trait FileAccess {
28
-	protected function setupFS(IUser $user){
29
-		\OC_Util::setupFS($user->getUID());
30
-	}
28
+    protected function setupFS(IUser $user){
29
+        \OC_Util::setupFS($user->getUID());
30
+    }
31 31
 
32
-	protected function getUserFolder(IUser $user) {
33
-		$this->setupFS($user);
34
-		return \OC::$server->getUserFolder($user->getUID());
35
-	}
32
+    protected function getUserFolder(IUser $user) {
33
+        $this->setupFS($user);
34
+        return \OC::$server->getUserFolder($user->getUID());
35
+    }
36 36
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@
 block discarded – undo
25 25
 use OCP\IUser;
26 26
 
27 27
 trait FileAccess {
28
-	protected function setupFS(IUser $user){
28
+	protected function setupFS(IUser $user) {
29 29
 		\OC_Util::setupFS($user->getUID());
30 30
 	}
31 31
 
Please login to merge, or discard this patch.
lib/private/Command/CommandJob.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -29,12 +29,12 @@
 block discarded – undo
29 29
  * Wrap a command in the background job interface
30 30
  */
31 31
 class CommandJob extends QueuedJob {
32
-	protected function run($serializedCommand) {
33
-		$command = unserialize($serializedCommand);
34
-		if ($command instanceof ICommand) {
35
-			$command->handle();
36
-		} else {
37
-			throw new \InvalidArgumentException('Invalid serialized command');
38
-		}
39
-	}
32
+    protected function run($serializedCommand) {
33
+        $command = unserialize($serializedCommand);
34
+        if ($command instanceof ICommand) {
35
+            $command->handle();
36
+        } else {
37
+            throw new \InvalidArgumentException('Invalid serialized command');
38
+        }
39
+    }
40 40
 }
Please login to merge, or discard this patch.
lib/private/Template/ResourceNotFoundException.php 2 patches
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -24,23 +24,23 @@
 block discarded – undo
24 24
 namespace OC\Template;
25 25
 
26 26
 class ResourceNotFoundException extends \LogicException {
27
-	protected $resource;
28
-	protected $webPath;
27
+    protected $resource;
28
+    protected $webPath;
29 29
 
30
-	/**
31
-	 * @param string $resource
32
-	 * @param string $webPath
33
-	 */
34
-	public function __construct($resource, $webPath) {
35
-		parent::__construct('Resource not found');
36
-		$this->resource = $resource;
37
-		$this->webPath = $webPath;
38
-	}
30
+    /**
31
+     * @param string $resource
32
+     * @param string $webPath
33
+     */
34
+    public function __construct($resource, $webPath) {
35
+        parent::__construct('Resource not found');
36
+        $this->resource = $resource;
37
+        $this->webPath = $webPath;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string
42
-	 */
43
-	public function getResourcePath() {
44
-		return $this->webPath . '/' . $this->resource;
45
-	}
40
+    /**
41
+     * @return string
42
+     */
43
+    public function getResourcePath() {
44
+        return $this->webPath . '/' . $this->resource;
45
+    }
46 46
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -41,6 +41,6 @@
 block discarded – undo
41 41
 	 * @return string
42 42
 	 */
43 43
 	public function getResourcePath() {
44
-		return $this->webPath . '/' . $this->resource;
44
+		return $this->webPath.'/'.$this->resource;
45 45
 	}
46 46
 }
Please login to merge, or discard this patch.
lib/private/Template/TemplateFileLocator.php 2 patches
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -26,37 +26,37 @@
 block discarded – undo
26 26
 namespace OC\Template;
27 27
 
28 28
 class TemplateFileLocator {
29
-	protected $dirs;
30
-	private $path;
29
+    protected $dirs;
30
+    private $path;
31 31
 
32
-	/**
33
-	 * @param string[] $dirs
34
-	 */
35
-	public function __construct( $dirs ) {
36
-		$this->dirs = $dirs;
37
-	}
32
+    /**
33
+     * @param string[] $dirs
34
+     */
35
+    public function __construct( $dirs ) {
36
+        $this->dirs = $dirs;
37
+    }
38 38
 
39
-	/**
40
-	 * @param string $template
41
-	 * @return string
42
-	 * @throws \Exception
43
-	 */
44
-	public function find( $template ) {
45
-		if ($template === '') {
46
-			throw new \InvalidArgumentException('Empty template name');
47
-		}
39
+    /**
40
+     * @param string $template
41
+     * @return string
42
+     * @throws \Exception
43
+     */
44
+    public function find( $template ) {
45
+        if ($template === '') {
46
+            throw new \InvalidArgumentException('Empty template name');
47
+        }
48 48
 
49
-		foreach($this->dirs as $dir) {
50
-			$file = $dir.$template.'.php';
51
-			if (is_file($file)) {
52
-				$this->path = $dir;
53
-				return $file;
54
-			}
55
-		}
56
-		throw new \Exception('template file not found: template:'.$template);
57
-	}
49
+        foreach($this->dirs as $dir) {
50
+            $file = $dir.$template.'.php';
51
+            if (is_file($file)) {
52
+                $this->path = $dir;
53
+                return $file;
54
+            }
55
+        }
56
+        throw new \Exception('template file not found: template:'.$template);
57
+    }
58 58
 
59
-	public function getPath() {
60
-		return $this->path;
61
-	}
59
+    public function getPath() {
60
+        return $this->path;
61
+    }
62 62
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
 	/**
33 33
 	 * @param string[] $dirs
34 34
 	 */
35
-	public function __construct( $dirs ) {
35
+	public function __construct($dirs) {
36 36
 		$this->dirs = $dirs;
37 37
 	}
38 38
 
@@ -41,12 +41,12 @@  discard block
 block discarded – undo
41 41
 	 * @return string
42 42
 	 * @throws \Exception
43 43
 	 */
44
-	public function find( $template ) {
44
+	public function find($template) {
45 45
 		if ($template === '') {
46 46
 			throw new \InvalidArgumentException('Empty template name');
47 47
 		}
48 48
 
49
-		foreach($this->dirs as $dir) {
49
+		foreach ($this->dirs as $dir) {
50 50
 			$file = $dir.$template.'.php';
51 51
 			if (is_file($file)) {
52 52
 				$this->path = $dir;
Please login to merge, or discard this patch.
lib/private/Hooks/BasicEmitter.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -24,5 +24,5 @@
 block discarded – undo
24 24
 namespace OC\Hooks;
25 25
 
26 26
 abstract class BasicEmitter implements Emitter {
27
-	use EmitterTrait;
27
+    use EmitterTrait;
28 28
 }
Please login to merge, or discard this patch.
lib/private/Hooks/Emitter.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -32,19 +32,19 @@
 block discarded – undo
32 32
  * @package OC\Hooks
33 33
  */
34 34
 interface Emitter {
35
-	/**
36
-	 * @param string $scope
37
-	 * @param string $method
38
-	 * @param callable $callback
39
-	 * @return void
40
-	 */
41
-	public function listen($scope, $method, callable $callback);
35
+    /**
36
+     * @param string $scope
37
+     * @param string $method
38
+     * @param callable $callback
39
+     * @return void
40
+     */
41
+    public function listen($scope, $method, callable $callback);
42 42
 
43
-	/**
44
-	 * @param string $scope optional
45
-	 * @param string $method optional
46
-	 * @param callable $callback optional
47
-	 * @return void
48
-	 */
49
-	public function removeListener($scope = null, $method = null, callable $callback = null);
43
+    /**
44
+     * @param string $scope optional
45
+     * @param string $method optional
46
+     * @param callable $callback optional
47
+     * @return void
48
+     */
49
+    public function removeListener($scope = null, $method = null, callable $callback = null);
50 50
 }
Please login to merge, or discard this patch.
lib/private/Hooks/ForwardingEmitter.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -31,35 +31,35 @@
 block discarded – undo
31 31
  * @package OC\Hooks
32 32
  */
33 33
 abstract class ForwardingEmitter extends BasicEmitter {
34
-	/**
35
-	 * @var \OC\Hooks\Emitter[] array
36
-	 */
37
-	private $forwardEmitters = array();
34
+    /**
35
+     * @var \OC\Hooks\Emitter[] array
36
+     */
37
+    private $forwardEmitters = array();
38 38
 
39
-	/**
40
-	 * @param string $scope
41
-	 * @param string $method
42
-	 * @param callable $callback
43
-	 */
44
-	public function listen($scope, $method, callable $callback) {
45
-		parent::listen($scope, $method, $callback);
46
-		foreach ($this->forwardEmitters as $emitter) {
47
-			$emitter->listen($scope, $method, $callback);
48
-		}
49
-	}
39
+    /**
40
+     * @param string $scope
41
+     * @param string $method
42
+     * @param callable $callback
43
+     */
44
+    public function listen($scope, $method, callable $callback) {
45
+        parent::listen($scope, $method, $callback);
46
+        foreach ($this->forwardEmitters as $emitter) {
47
+            $emitter->listen($scope, $method, $callback);
48
+        }
49
+    }
50 50
 
51
-	/**
52
-	 * @param \OC\Hooks\Emitter $emitter
53
-	 */
54
-	protected function forward(Emitter $emitter) {
55
-		$this->forwardEmitters[] = $emitter;
51
+    /**
52
+     * @param \OC\Hooks\Emitter $emitter
53
+     */
54
+    protected function forward(Emitter $emitter) {
55
+        $this->forwardEmitters[] = $emitter;
56 56
 
57
-		//forward all previously connected hooks
58
-		foreach ($this->listeners as $key => $listeners) {
59
-			list($scope, $method) = explode('::', $key, 2);
60
-			foreach ($listeners as $listener) {
61
-				$emitter->listen($scope, $method, $listener);
62
-			}
63
-		}
64
-	}
57
+        //forward all previously connected hooks
58
+        foreach ($this->listeners as $key => $listeners) {
59
+            list($scope, $method) = explode('::', $key, 2);
60
+            foreach ($listeners as $listener) {
61
+                $emitter->listen($scope, $method, $listener);
62
+            }
63
+        }
64
+    }
65 65
 }
Please login to merge, or discard this patch.
lib/private/Hooks/EmitterTrait.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 	 * @param callable $callback
36 36
 	 */
37 37
 	public function listen($scope, $method, callable $callback) {
38
-		$eventName = $scope . '::' . $method;
38
+		$eventName = $scope.'::'.$method;
39 39
 		if (!isset($this->listeners[$eventName])) {
40 40
 			$this->listeners[$eventName] = array();
41 41
 		}
@@ -53,7 +53,7 @@  discard block
 block discarded – undo
53 53
 		$names = array();
54 54
 		$allNames = array_keys($this->listeners);
55 55
 		if ($scope and $method) {
56
-			$name = $scope . '::' . $method;
56
+			$name = $scope.'::'.$method;
57 57
 			if (isset($this->listeners[$name])) {
58 58
 				$names[] = $name;
59 59
 			}
@@ -93,7 +93,7 @@  discard block
 block discarded – undo
93 93
 	 * @param array $arguments optional
94 94
 	 */
95 95
 	protected function emit($scope, $method, array $arguments = array()) {
96
-		$eventName = $scope . '::' . $method;
96
+		$eventName = $scope.'::'.$method;
97 97
 		if (isset($this->listeners[$eventName])) {
98 98
 			foreach ($this->listeners[$eventName] as $callback) {
99 99
 				call_user_func_array($callback, $arguments);
Please login to merge, or discard this patch.
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -24,80 +24,80 @@
 block discarded – undo
24 24
 
25 25
 trait EmitterTrait {
26 26
 
27
-	/**
28
-	 * @var callable[][] $listeners
29
-	 */
30
-	protected $listeners = array();
27
+    /**
28
+     * @var callable[][] $listeners
29
+     */
30
+    protected $listeners = array();
31 31
 
32
-	/**
33
-	 * @param string $scope
34
-	 * @param string $method
35
-	 * @param callable $callback
36
-	 */
37
-	public function listen($scope, $method, callable $callback) {
38
-		$eventName = $scope . '::' . $method;
39
-		if (!isset($this->listeners[$eventName])) {
40
-			$this->listeners[$eventName] = array();
41
-		}
42
-		if (array_search($callback, $this->listeners[$eventName], true) === false) {
43
-			$this->listeners[$eventName][] = $callback;
44
-		}
45
-	}
32
+    /**
33
+     * @param string $scope
34
+     * @param string $method
35
+     * @param callable $callback
36
+     */
37
+    public function listen($scope, $method, callable $callback) {
38
+        $eventName = $scope . '::' . $method;
39
+        if (!isset($this->listeners[$eventName])) {
40
+            $this->listeners[$eventName] = array();
41
+        }
42
+        if (array_search($callback, $this->listeners[$eventName], true) === false) {
43
+            $this->listeners[$eventName][] = $callback;
44
+        }
45
+    }
46 46
 
47
-	/**
48
-	 * @param string $scope optional
49
-	 * @param string $method optional
50
-	 * @param callable $callback optional
51
-	 */
52
-	public function removeListener($scope = null, $method = null, callable $callback = null) {
53
-		$names = array();
54
-		$allNames = array_keys($this->listeners);
55
-		if ($scope and $method) {
56
-			$name = $scope . '::' . $method;
57
-			if (isset($this->listeners[$name])) {
58
-				$names[] = $name;
59
-			}
60
-		} elseif ($scope) {
61
-			foreach ($allNames as $name) {
62
-				$parts = explode('::', $name, 2);
63
-				if ($parts[0] == $scope) {
64
-					$names[] = $name;
65
-				}
66
-			}
67
-		} elseif ($method) {
68
-			foreach ($allNames as $name) {
69
-				$parts = explode('::', $name, 2);
70
-				if ($parts[1] == $method) {
71
-					$names[] = $name;
72
-				}
73
-			}
74
-		} else {
75
-			$names = $allNames;
76
-		}
47
+    /**
48
+     * @param string $scope optional
49
+     * @param string $method optional
50
+     * @param callable $callback optional
51
+     */
52
+    public function removeListener($scope = null, $method = null, callable $callback = null) {
53
+        $names = array();
54
+        $allNames = array_keys($this->listeners);
55
+        if ($scope and $method) {
56
+            $name = $scope . '::' . $method;
57
+            if (isset($this->listeners[$name])) {
58
+                $names[] = $name;
59
+            }
60
+        } elseif ($scope) {
61
+            foreach ($allNames as $name) {
62
+                $parts = explode('::', $name, 2);
63
+                if ($parts[0] == $scope) {
64
+                    $names[] = $name;
65
+                }
66
+            }
67
+        } elseif ($method) {
68
+            foreach ($allNames as $name) {
69
+                $parts = explode('::', $name, 2);
70
+                if ($parts[1] == $method) {
71
+                    $names[] = $name;
72
+                }
73
+            }
74
+        } else {
75
+            $names = $allNames;
76
+        }
77 77
 
78
-		foreach ($names as $name) {
79
-			if ($callback) {
80
-				$index = array_search($callback, $this->listeners[$name], true);
81
-				if ($index !== false) {
82
-					unset($this->listeners[$name][$index]);
83
-				}
84
-			} else {
85
-				$this->listeners[$name] = array();
86
-			}
87
-		}
88
-	}
78
+        foreach ($names as $name) {
79
+            if ($callback) {
80
+                $index = array_search($callback, $this->listeners[$name], true);
81
+                if ($index !== false) {
82
+                    unset($this->listeners[$name][$index]);
83
+                }
84
+            } else {
85
+                $this->listeners[$name] = array();
86
+            }
87
+        }
88
+    }
89 89
 
90
-	/**
91
-	 * @param string $scope
92
-	 * @param string $method
93
-	 * @param array $arguments optional
94
-	 */
95
-	protected function emit($scope, $method, array $arguments = array()) {
96
-		$eventName = $scope . '::' . $method;
97
-		if (isset($this->listeners[$eventName])) {
98
-			foreach ($this->listeners[$eventName] as $callback) {
99
-				call_user_func_array($callback, $arguments);
100
-			}
101
-		}
102
-	}
90
+    /**
91
+     * @param string $scope
92
+     * @param string $method
93
+     * @param array $arguments optional
94
+     */
95
+    protected function emit($scope, $method, array $arguments = array()) {
96
+        $eventName = $scope . '::' . $method;
97
+        if (isset($this->listeners[$eventName])) {
98
+            foreach ($this->listeners[$eventName] as $callback) {
99
+                call_user_func_array($callback, $arguments);
100
+            }
101
+        }
102
+    }
103 103
 }
Please login to merge, or discard this patch.
lib/private/legacy/files.php 4 patches
Braces   +6 added lines, -12 removed lines patch added patch discarded remove patch
@@ -83,13 +83,11 @@  discard block
 block discarded – undo
83 83
 			    if (count($rangeArray) > 1) {
84 84
 				$type = 'multipart/byteranges; boundary='.self::getBoundary();
85 85
 				// no Content-Length header here
86
-			    }
87
-			    else {
86
+			    } else {
88 87
 				header(sprintf('Content-Range: bytes %d-%d/%d', $rangeArray[0]['from'], $rangeArray[0]['to'], $fileSize), true);
89 88
 				OC_Response::setContentLengthHeader($rangeArray[0]['to'] - $rangeArray[0]['from'] + 1);
90 89
 			    }
91
-			}
92
-			else {
90
+			} else {
93 91
 			    OC_Response::setContentLengthHeader($fileSize);
94 92
 			}
95 93
 		}
@@ -223,13 +221,11 @@  discard block
 block discarded – undo
223 221
 				if ($minOffset >= $fileSize) {
224 222
 					break;
225 223
 				}
226
-			}
227
-			elseif (is_numeric($ranges[0]) && $ranges[0] < $fileSize) {
224
+			} elseif (is_numeric($ranges[0]) && $ranges[0] < $fileSize) {
228 225
 				// case: x-
229 226
 				$rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $fileSize-1, 'size' => $fileSize );
230 227
 				break;
231
-			}
232
-			elseif (is_numeric($ranges[1])) {
228
+			} elseif (is_numeric($ranges[1])) {
233 229
 				// case: -x
234 230
 				if ($ranges[1] > $fileSize) {
235 231
 					$ranges[1] = $fileSize;
@@ -277,8 +273,7 @@  discard block
 block discarded – undo
277 273
 			try {
278 274
 			    if (count($rangeArray) == 1) {
279 275
 				$view->readfilePart($filename, $rangeArray[0]['from'], $rangeArray[0]['to']);
280
-			    }
281
-			    else {
276
+			    } else {
282 277
 				// check if file is seekable (if not throw UnseekableException)
283 278
 				// we have to check it before body contents
284 279
 				$view->readfilePart($filename, $rangeArray[0]['size'], $rangeArray[0]['size']);
@@ -301,8 +296,7 @@  discard block
 block discarded – undo
301 296
 			    self::sendHeaders($filename, $name, array());
302 297
 			    $view->readfile($filename);
303 298
 			}
304
-		}
305
-		else {
299
+		} else {
306 300
 		    $view->readfile($filename);
307 301
 		}
308 302
 	}
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -338,7 +338,7 @@
 block discarded – undo
338 338
 	 *
339 339
 	 * @param int $size file size in bytes
340 340
 	 * @param array $files override '.htaccess' and '.user.ini' locations
341
-	 * @return bool|int false on failure, size on success
341
+	 * @return integer false on failure, size on success
342 342
 	 */
343 343
 	public static function setUploadLimit($size, $files = []) {
344 344
 		//don't allow user to break his config
Please login to merge, or discard this patch.
Spacing   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
 	private static function sendHeaders($filename, $name, array $rangeArray) {
77 77
 		OC_Response::setContentDispositionHeader($name, 'attachment');
78 78
 		header('Content-Transfer-Encoding: binary', true);
79
-		header('Pragma: public');// enable caching in IE
79
+		header('Pragma: public'); // enable caching in IE
80 80
 		header('Expires: 0');
81 81
 		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
82 82
 		$fileSize = \OC\Files\Filesystem::filesize($filename);
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 			}
121 121
 
122 122
 			if (!is_array($files)) {
123
-				$filename = $dir . '/' . $files;
123
+				$filename = $dir.'/'.$files;
124 124
 				if (!$view->is_dir($filename)) {
125 125
 					self::getSingleFile($view, $dir, $files, is_null($params) ? array() : $params);
126 126
 					return;
@@ -135,9 +135,9 @@  discard block
 block discarded – undo
135 135
 					$name = $basename;
136 136
 				}
137 137
 
138
-				$filename = $dir . '/' . $name;
138
+				$filename = $dir.'/'.$name;
139 139
 			} else {
140
-				$filename = $dir . '/' . $files;
140
+				$filename = $dir.'/'.$files;
141 141
 				$getType = self::ZIP_DIR;
142 142
 				// downloading root ?
143 143
 				if ($files !== '') {
@@ -152,13 +152,13 @@  discard block
 block discarded – undo
152 152
 				$fileInfos = array();
153 153
 				$fileSize = 0;
154 154
 				foreach ($files as $file) {
155
-					$fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $file);
155
+					$fileInfo = \OC\Files\Filesystem::getFileInfo($dir.'/'.$file);
156 156
 					$fileSize += $fileInfo->getSize();
157 157
 					$fileInfos[] = $fileInfo;
158 158
 				}
159 159
 				$numberOfFiles = self::getNumberOfFiles($fileInfos);
160 160
 			} elseif ($getType === self::ZIP_DIR) {
161
-				$fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $files);
161
+				$fileInfo = \OC\Files\Filesystem::getFileInfo($dir.'/'.$files);
162 162
 				$fileSize = $fileInfo->getSize();
163 163
 				$numberOfFiles = self::getNumberOfFiles(array($fileInfo));
164 164
 			}
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 			OC_Util::obEnd();
168 168
 
169 169
 			$streamer->sendHeaders($name);
170
-			$executionTime = (int)OC::$server->getIniWrapper()->getNumeric('max_execution_time');
170
+			$executionTime = (int) OC::$server->getIniWrapper()->getNumeric('max_execution_time');
171 171
 			if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
172 172
 				@set_time_limit(0);
173 173
 			}
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
 
176 176
 			if ($getType === self::ZIP_FILES) {
177 177
 				foreach ($files as $file) {
178
-					$file = $dir . '/' . $file;
178
+					$file = $dir.'/'.$file;
179 179
 					if (\OC\Files\Filesystem::is_file($file)) {
180 180
 						$fileSize = \OC\Files\Filesystem::filesize($file);
181 181
 						$fileTime = \OC\Files\Filesystem::filemtime($file);
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
 					}
188 188
 				}
189 189
 			} elseif ($getType === self::ZIP_DIR) {
190
-				$file = $dir . '/' . $files;
190
+				$file = $dir.'/'.$files;
191 191
 				$streamer->addDirRecursive($file);
192 192
 			}
193 193
 			$streamer->finalize();
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
 	 * @return array $rangeArray ('from'=>int,'to'=>int), ...
220 220
 	 */
221 221
 	private static function parseHttpRangeHeader($rangeHeaderPos, $fileSize) {
222
-		$rArray=explode(',', $rangeHeaderPos);
222
+		$rArray = explode(',', $rangeHeaderPos);
223 223
 		$minOffset = 0;
224 224
 		$ind = 0;
225 225
 
@@ -231,7 +231,7 @@  discard block
 block discarded – undo
231 231
 				if ($ranges[0] < $minOffset) { // case: bytes=500-700,601-999
232 232
 					$ranges[0] = $minOffset;
233 233
 				}
234
-				if ($ind > 0 && $rangeArray[$ind-1]['to']+1 == $ranges[0]) { // case: bytes=500-600,601-999
234
+				if ($ind > 0 && $rangeArray[$ind - 1]['to'] + 1 == $ranges[0]) { // case: bytes=500-600,601-999
235 235
 					$ind--;
236 236
 					$ranges[0] = $rangeArray[$ind]['from'];
237 237
 				}
@@ -240,9 +240,9 @@  discard block
 block discarded – undo
240 240
 			if (is_numeric($ranges[0]) && is_numeric($ranges[1]) && $ranges[0] < $fileSize && $ranges[0] <= $ranges[1]) {
241 241
 				// case: x-x
242 242
 				if ($ranges[1] >= $fileSize) {
243
-					$ranges[1] = $fileSize-1;
243
+					$ranges[1] = $fileSize - 1;
244 244
 				}
245
-				$rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $ranges[1], 'size' => $fileSize );
245
+				$rangeArray[$ind++] = array('from' => $ranges[0], 'to' => $ranges[1], 'size' => $fileSize);
246 246
 				$minOffset = $ranges[1] + 1;
247 247
 				if ($minOffset >= $fileSize) {
248 248
 					break;
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 			}
251 251
 			elseif (is_numeric($ranges[0]) && $ranges[0] < $fileSize) {
252 252
 				// case: x-
253
-				$rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $fileSize-1, 'size' => $fileSize );
253
+				$rangeArray[$ind++] = array('from' => $ranges[0], 'to' => $fileSize - 1, 'size' => $fileSize);
254 254
 				break;
255 255
 			}
256 256
 			elseif (is_numeric($ranges[1])) {
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
 				if ($ranges[1] > $fileSize) {
259 259
 					$ranges[1] = $fileSize;
260 260
 				}
261
-				$rangeArray[$ind++] = array( 'from' => $fileSize-$ranges[1], 'to' => $fileSize-1, 'size' => $fileSize );
261
+				$rangeArray[$ind++] = array('from' => $fileSize - $ranges[1], 'to' => $fileSize - 1, 'size' => $fileSize);
262 262
 				break;
263 263
 			}
264 264
 		}
@@ -272,7 +272,7 @@  discard block
 block discarded – undo
272 272
 	 * @param array $params ; 'head' boolean to only send header of the request ; 'range' http range header
273 273
 	 */
274 274
 	private static function getSingleFile($view, $dir, $name, $params) {
275
-		$filename = $dir . '/' . $name;
275
+		$filename = $dir.'/'.$name;
276 276
 		OC_Util::obEnd();
277 277
 		$view->lockFile($filename, ILockingProvider::LOCK_SHARED);
278 278
 		
@@ -361,17 +361,17 @@  discard block
 block discarded – undo
361 361
 	 */
362 362
 	public static function lockFiles($view, $dir, $files) {
363 363
 		if (!is_array($files)) {
364
-			$file = $dir . '/' . $files;
364
+			$file = $dir.'/'.$files;
365 365
 			$files = [$file];
366 366
 		}
367 367
 		foreach ($files as $file) {
368
-			$file = $dir . '/' . $file;
368
+			$file = $dir.'/'.$file;
369 369
 			$view->lockFile($file, ILockingProvider::LOCK_SHARED);
370 370
 			if ($view->is_dir($file)) {
371 371
 				$contents = $view->getDirectoryContent($file);
372 372
 				$contents = array_map(function($fileInfo) use ($file) {
373 373
 					/** @var \OCP\Files\FileInfo $fileInfo */
374
-					return $file . '/' . $fileInfo->getName();
374
+					return $file.'/'.$fileInfo->getName();
375 375
 				}, $contents);
376 376
 				self::lockFiles($view, $dir, $contents);
377 377
 			}
@@ -387,7 +387,7 @@  discard block
 block discarded – undo
387 387
 	 */
388 388
 	public static function setUploadLimit($size, $files = []) {
389 389
 		//don't allow user to break his config
390
-		$size = (int)$size;
390
+		$size = (int) $size;
391 391
 		if ($size < self::UPLOAD_MIN_LIMIT_BYTES) {
392 392
 			return false;
393 393
 		}
@@ -400,8 +400,8 @@  discard block
 block discarded – undo
400 400
 
401 401
 		// default locations if not overridden by $files
402 402
 		$files = array_merge([
403
-			'.htaccess' => OC::$SERVERROOT . '/.htaccess',
404
-			'.user.ini' => OC::$SERVERROOT . '/.user.ini'
403
+			'.htaccess' => OC::$SERVERROOT.'/.htaccess',
404
+			'.user.ini' => OC::$SERVERROOT.'/.user.ini'
405 405
 		], $files);
406 406
 
407 407
 		$updateFiles = [
@@ -422,7 +422,7 @@  discard block
 block discarded – undo
422 422
 			$handle = @fopen($filename, 'r+');
423 423
 			if (!$handle) {
424 424
 				\OCP\Util::writeLog('files',
425
-					'Can\'t write upload limit to ' . $filename . '. Please check the file permissions',
425
+					'Can\'t write upload limit to '.$filename.'. Please check the file permissions',
426 426
 					ILogger::WARN);
427 427
 				$success = false;
428 428
 				continue; // try to update as many files as possible
@@ -442,7 +442,7 @@  discard block
 block discarded – undo
442 442
 					$content = $newContent;
443 443
 				}
444 444
 				if ($hasReplaced === 0) {
445
-					$content .= "\n" . $setting;
445
+					$content .= "\n".$setting;
446 446
 				}
447 447
 			}
448 448
 
@@ -473,12 +473,12 @@  discard block
 block discarded – undo
473 473
 		}
474 474
 		if ($getType === self::ZIP_FILES) {
475 475
 			foreach ($files as $file) {
476
-				$file = $dir . '/' . $file;
476
+				$file = $dir.'/'.$file;
477 477
 				$view->unlockFile($file, ILockingProvider::LOCK_SHARED);
478 478
 			}
479 479
 		}
480 480
 		if ($getType === self::ZIP_DIR) {
481
-			$file = $dir . '/' . $files;
481
+			$file = $dir.'/'.$files;
482 482
 			$view->unlockFile($file, ILockingProvider::LOCK_SHARED);
483 483
 		}
484 484
 	}
Please login to merge, or discard this patch.
Indentation   +430 added lines, -430 removed lines patch added patch discarded remove patch
@@ -49,438 +49,438 @@
 block discarded – undo
49 49
  *
50 50
  */
51 51
 class OC_Files {
52
-	const FILE = 1;
53
-	const ZIP_FILES = 2;
54
-	const ZIP_DIR = 3;
55
-
56
-	const UPLOAD_MIN_LIMIT_BYTES = 1048576; // 1 MiB
57
-
58
-
59
-	private static $multipartBoundary = '';
60
-
61
-	/**
62
-	 * @return string
63
-	 */
64
-	private static function getBoundary() {
65
-		if (empty(self::$multipartBoundary)) {
66
-			self::$multipartBoundary = md5(mt_rand());
67
-		}
68
-		return self::$multipartBoundary;
69
-	}
70
-
71
-	/**
72
-	 * @param string $filename
73
-	 * @param string $name
74
-	 * @param array $rangeArray ('from'=>int,'to'=>int), ...
75
-	 */
76
-	private static function sendHeaders($filename, $name, array $rangeArray) {
77
-		OC_Response::setContentDispositionHeader($name, 'attachment');
78
-		header('Content-Transfer-Encoding: binary', true);
79
-		header('Pragma: public');// enable caching in IE
80
-		header('Expires: 0');
81
-		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
82
-		$fileSize = \OC\Files\Filesystem::filesize($filename);
83
-		$type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename));
84
-		if ($fileSize > -1) {
85
-			if (!empty($rangeArray)) {
86
-			    http_response_code(206);
87
-			    header('Accept-Ranges: bytes', true);
88
-			    if (count($rangeArray) > 1) {
89
-				$type = 'multipart/byteranges; boundary='.self::getBoundary();
90
-				// no Content-Length header here
91
-			    }
92
-			    else {
93
-				header(sprintf('Content-Range: bytes %d-%d/%d', $rangeArray[0]['from'], $rangeArray[0]['to'], $fileSize), true);
94
-				OC_Response::setContentLengthHeader($rangeArray[0]['to'] - $rangeArray[0]['from'] + 1);
95
-			    }
96
-			}
97
-			else {
98
-			    OC_Response::setContentLengthHeader($fileSize);
99
-			}
100
-		}
101
-		header('Content-Type: '.$type, true);
102
-	}
103
-
104
-	/**
105
-	 * return the content of a file or return a zip file containing multiple files
106
-	 *
107
-	 * @param string $dir
108
-	 * @param string $files ; separated list of files to download
109
-	 * @param array $params ; 'head' boolean to only send header of the request ; 'range' http range header
110
-	 */
111
-	public static function get($dir, $files, $params = null) {
112
-
113
-		$view = \OC\Files\Filesystem::getView();
114
-		$getType = self::FILE;
115
-		$filename = $dir;
116
-		try {
117
-
118
-			if (is_array($files) && count($files) === 1) {
119
-				$files = $files[0];
120
-			}
121
-
122
-			if (!is_array($files)) {
123
-				$filename = $dir . '/' . $files;
124
-				if (!$view->is_dir($filename)) {
125
-					self::getSingleFile($view, $dir, $files, is_null($params) ? array() : $params);
126
-					return;
127
-				}
128
-			}
129
-
130
-			$name = 'download';
131
-			if (is_array($files)) {
132
-				$getType = self::ZIP_FILES;
133
-				$basename = basename($dir);
134
-				if ($basename) {
135
-					$name = $basename;
136
-				}
137
-
138
-				$filename = $dir . '/' . $name;
139
-			} else {
140
-				$filename = $dir . '/' . $files;
141
-				$getType = self::ZIP_DIR;
142
-				// downloading root ?
143
-				if ($files !== '') {
144
-					$name = $files;
145
-				}
146
-			}
147
-
148
-			self::lockFiles($view, $dir, $files);
149
-
150
-			/* Calculate filesize and number of files */
151
-			if ($getType === self::ZIP_FILES) {
152
-				$fileInfos = array();
153
-				$fileSize = 0;
154
-				foreach ($files as $file) {
155
-					$fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $file);
156
-					$fileSize += $fileInfo->getSize();
157
-					$fileInfos[] = $fileInfo;
158
-				}
159
-				$numberOfFiles = self::getNumberOfFiles($fileInfos);
160
-			} elseif ($getType === self::ZIP_DIR) {
161
-				$fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $files);
162
-				$fileSize = $fileInfo->getSize();
163
-				$numberOfFiles = self::getNumberOfFiles(array($fileInfo));
164
-			}
165
-
166
-			$streamer = new Streamer(\OC::$server->getRequest(), $fileSize, $numberOfFiles);
167
-			OC_Util::obEnd();
168
-
169
-			$streamer->sendHeaders($name);
170
-			$executionTime = (int)OC::$server->getIniWrapper()->getNumeric('max_execution_time');
171
-			if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
172
-				@set_time_limit(0);
173
-			}
174
-			ignore_user_abort(true);
175
-
176
-			if ($getType === self::ZIP_FILES) {
177
-				foreach ($files as $file) {
178
-					$file = $dir . '/' . $file;
179
-					if (\OC\Files\Filesystem::is_file($file)) {
180
-						$fileSize = \OC\Files\Filesystem::filesize($file);
181
-						$fileTime = \OC\Files\Filesystem::filemtime($file);
182
-						$fh = \OC\Files\Filesystem::fopen($file, 'r');
183
-						$streamer->addFileFromStream($fh, basename($file), $fileSize, $fileTime);
184
-						fclose($fh);
185
-					} elseif (\OC\Files\Filesystem::is_dir($file)) {
186
-						$streamer->addDirRecursive($file);
187
-					}
188
-				}
189
-			} elseif ($getType === self::ZIP_DIR) {
190
-				$file = $dir . '/' . $files;
191
-				$streamer->addDirRecursive($file);
192
-			}
193
-			$streamer->finalize();
194
-			set_time_limit($executionTime);
195
-			self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
196
-		} catch (\OCP\Lock\LockedException $ex) {
197
-			self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
198
-			OC::$server->getLogger()->logException($ex);
199
-			$l = \OC::$server->getL10N('core');
200
-			$hint = method_exists($ex, 'getHint') ? $ex->getHint() : '';
201
-			\OC_Template::printErrorPage($l->t('File is currently busy, please try again later'), $hint, 200);
202
-		} catch (\OCP\Files\ForbiddenException $ex) {
203
-			self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
204
-			OC::$server->getLogger()->logException($ex);
205
-			$l = \OC::$server->getL10N('core');
206
-			\OC_Template::printErrorPage($l->t('Can\'t read file'), $ex->getMessage(), 200);
207
-		} catch (\Exception $ex) {
208
-			self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
209
-			OC::$server->getLogger()->logException($ex);
210
-			$l = \OC::$server->getL10N('core');
211
-			$hint = method_exists($ex, 'getHint') ? $ex->getHint() : '';
212
-			\OC_Template::printErrorPage($l->t('Can\'t read file'), $hint, 200);
213
-		}
214
-	}
215
-
216
-	/**
217
-	 * @param string $rangeHeaderPos
218
-	 * @param int $fileSize
219
-	 * @return array $rangeArray ('from'=>int,'to'=>int), ...
220
-	 */
221
-	private static function parseHttpRangeHeader($rangeHeaderPos, $fileSize) {
222
-		$rArray=explode(',', $rangeHeaderPos);
223
-		$minOffset = 0;
224
-		$ind = 0;
225
-
226
-		$rangeArray = array();
227
-
228
-		foreach ($rArray as $value) {
229
-			$ranges = explode('-', $value);
230
-			if (is_numeric($ranges[0])) {
231
-				if ($ranges[0] < $minOffset) { // case: bytes=500-700,601-999
232
-					$ranges[0] = $minOffset;
233
-				}
234
-				if ($ind > 0 && $rangeArray[$ind-1]['to']+1 == $ranges[0]) { // case: bytes=500-600,601-999
235
-					$ind--;
236
-					$ranges[0] = $rangeArray[$ind]['from'];
237
-				}
238
-			}
239
-
240
-			if (is_numeric($ranges[0]) && is_numeric($ranges[1]) && $ranges[0] < $fileSize && $ranges[0] <= $ranges[1]) {
241
-				// case: x-x
242
-				if ($ranges[1] >= $fileSize) {
243
-					$ranges[1] = $fileSize-1;
244
-				}
245
-				$rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $ranges[1], 'size' => $fileSize );
246
-				$minOffset = $ranges[1] + 1;
247
-				if ($minOffset >= $fileSize) {
248
-					break;
249
-				}
250
-			}
251
-			elseif (is_numeric($ranges[0]) && $ranges[0] < $fileSize) {
252
-				// case: x-
253
-				$rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $fileSize-1, 'size' => $fileSize );
254
-				break;
255
-			}
256
-			elseif (is_numeric($ranges[1])) {
257
-				// case: -x
258
-				if ($ranges[1] > $fileSize) {
259
-					$ranges[1] = $fileSize;
260
-				}
261
-				$rangeArray[$ind++] = array( 'from' => $fileSize-$ranges[1], 'to' => $fileSize-1, 'size' => $fileSize );
262
-				break;
263
-			}
264
-		}
265
-		return $rangeArray;
266
-	}
267
-
268
-	/**
269
-	 * @param View $view
270
-	 * @param string $name
271
-	 * @param string $dir
272
-	 * @param array $params ; 'head' boolean to only send header of the request ; 'range' http range header
273
-	 */
274
-	private static function getSingleFile($view, $dir, $name, $params) {
275
-		$filename = $dir . '/' . $name;
276
-		OC_Util::obEnd();
277
-		$view->lockFile($filename, ILockingProvider::LOCK_SHARED);
52
+    const FILE = 1;
53
+    const ZIP_FILES = 2;
54
+    const ZIP_DIR = 3;
55
+
56
+    const UPLOAD_MIN_LIMIT_BYTES = 1048576; // 1 MiB
57
+
58
+
59
+    private static $multipartBoundary = '';
60
+
61
+    /**
62
+     * @return string
63
+     */
64
+    private static function getBoundary() {
65
+        if (empty(self::$multipartBoundary)) {
66
+            self::$multipartBoundary = md5(mt_rand());
67
+        }
68
+        return self::$multipartBoundary;
69
+    }
70
+
71
+    /**
72
+     * @param string $filename
73
+     * @param string $name
74
+     * @param array $rangeArray ('from'=>int,'to'=>int), ...
75
+     */
76
+    private static function sendHeaders($filename, $name, array $rangeArray) {
77
+        OC_Response::setContentDispositionHeader($name, 'attachment');
78
+        header('Content-Transfer-Encoding: binary', true);
79
+        header('Pragma: public');// enable caching in IE
80
+        header('Expires: 0');
81
+        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
82
+        $fileSize = \OC\Files\Filesystem::filesize($filename);
83
+        $type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename));
84
+        if ($fileSize > -1) {
85
+            if (!empty($rangeArray)) {
86
+                http_response_code(206);
87
+                header('Accept-Ranges: bytes', true);
88
+                if (count($rangeArray) > 1) {
89
+                $type = 'multipart/byteranges; boundary='.self::getBoundary();
90
+                // no Content-Length header here
91
+                }
92
+                else {
93
+                header(sprintf('Content-Range: bytes %d-%d/%d', $rangeArray[0]['from'], $rangeArray[0]['to'], $fileSize), true);
94
+                OC_Response::setContentLengthHeader($rangeArray[0]['to'] - $rangeArray[0]['from'] + 1);
95
+                }
96
+            }
97
+            else {
98
+                OC_Response::setContentLengthHeader($fileSize);
99
+            }
100
+        }
101
+        header('Content-Type: '.$type, true);
102
+    }
103
+
104
+    /**
105
+     * return the content of a file or return a zip file containing multiple files
106
+     *
107
+     * @param string $dir
108
+     * @param string $files ; separated list of files to download
109
+     * @param array $params ; 'head' boolean to only send header of the request ; 'range' http range header
110
+     */
111
+    public static function get($dir, $files, $params = null) {
112
+
113
+        $view = \OC\Files\Filesystem::getView();
114
+        $getType = self::FILE;
115
+        $filename = $dir;
116
+        try {
117
+
118
+            if (is_array($files) && count($files) === 1) {
119
+                $files = $files[0];
120
+            }
121
+
122
+            if (!is_array($files)) {
123
+                $filename = $dir . '/' . $files;
124
+                if (!$view->is_dir($filename)) {
125
+                    self::getSingleFile($view, $dir, $files, is_null($params) ? array() : $params);
126
+                    return;
127
+                }
128
+            }
129
+
130
+            $name = 'download';
131
+            if (is_array($files)) {
132
+                $getType = self::ZIP_FILES;
133
+                $basename = basename($dir);
134
+                if ($basename) {
135
+                    $name = $basename;
136
+                }
137
+
138
+                $filename = $dir . '/' . $name;
139
+            } else {
140
+                $filename = $dir . '/' . $files;
141
+                $getType = self::ZIP_DIR;
142
+                // downloading root ?
143
+                if ($files !== '') {
144
+                    $name = $files;
145
+                }
146
+            }
147
+
148
+            self::lockFiles($view, $dir, $files);
149
+
150
+            /* Calculate filesize and number of files */
151
+            if ($getType === self::ZIP_FILES) {
152
+                $fileInfos = array();
153
+                $fileSize = 0;
154
+                foreach ($files as $file) {
155
+                    $fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $file);
156
+                    $fileSize += $fileInfo->getSize();
157
+                    $fileInfos[] = $fileInfo;
158
+                }
159
+                $numberOfFiles = self::getNumberOfFiles($fileInfos);
160
+            } elseif ($getType === self::ZIP_DIR) {
161
+                $fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $files);
162
+                $fileSize = $fileInfo->getSize();
163
+                $numberOfFiles = self::getNumberOfFiles(array($fileInfo));
164
+            }
165
+
166
+            $streamer = new Streamer(\OC::$server->getRequest(), $fileSize, $numberOfFiles);
167
+            OC_Util::obEnd();
168
+
169
+            $streamer->sendHeaders($name);
170
+            $executionTime = (int)OC::$server->getIniWrapper()->getNumeric('max_execution_time');
171
+            if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
172
+                @set_time_limit(0);
173
+            }
174
+            ignore_user_abort(true);
175
+
176
+            if ($getType === self::ZIP_FILES) {
177
+                foreach ($files as $file) {
178
+                    $file = $dir . '/' . $file;
179
+                    if (\OC\Files\Filesystem::is_file($file)) {
180
+                        $fileSize = \OC\Files\Filesystem::filesize($file);
181
+                        $fileTime = \OC\Files\Filesystem::filemtime($file);
182
+                        $fh = \OC\Files\Filesystem::fopen($file, 'r');
183
+                        $streamer->addFileFromStream($fh, basename($file), $fileSize, $fileTime);
184
+                        fclose($fh);
185
+                    } elseif (\OC\Files\Filesystem::is_dir($file)) {
186
+                        $streamer->addDirRecursive($file);
187
+                    }
188
+                }
189
+            } elseif ($getType === self::ZIP_DIR) {
190
+                $file = $dir . '/' . $files;
191
+                $streamer->addDirRecursive($file);
192
+            }
193
+            $streamer->finalize();
194
+            set_time_limit($executionTime);
195
+            self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
196
+        } catch (\OCP\Lock\LockedException $ex) {
197
+            self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
198
+            OC::$server->getLogger()->logException($ex);
199
+            $l = \OC::$server->getL10N('core');
200
+            $hint = method_exists($ex, 'getHint') ? $ex->getHint() : '';
201
+            \OC_Template::printErrorPage($l->t('File is currently busy, please try again later'), $hint, 200);
202
+        } catch (\OCP\Files\ForbiddenException $ex) {
203
+            self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
204
+            OC::$server->getLogger()->logException($ex);
205
+            $l = \OC::$server->getL10N('core');
206
+            \OC_Template::printErrorPage($l->t('Can\'t read file'), $ex->getMessage(), 200);
207
+        } catch (\Exception $ex) {
208
+            self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
209
+            OC::$server->getLogger()->logException($ex);
210
+            $l = \OC::$server->getL10N('core');
211
+            $hint = method_exists($ex, 'getHint') ? $ex->getHint() : '';
212
+            \OC_Template::printErrorPage($l->t('Can\'t read file'), $hint, 200);
213
+        }
214
+    }
215
+
216
+    /**
217
+     * @param string $rangeHeaderPos
218
+     * @param int $fileSize
219
+     * @return array $rangeArray ('from'=>int,'to'=>int), ...
220
+     */
221
+    private static function parseHttpRangeHeader($rangeHeaderPos, $fileSize) {
222
+        $rArray=explode(',', $rangeHeaderPos);
223
+        $minOffset = 0;
224
+        $ind = 0;
225
+
226
+        $rangeArray = array();
227
+
228
+        foreach ($rArray as $value) {
229
+            $ranges = explode('-', $value);
230
+            if (is_numeric($ranges[0])) {
231
+                if ($ranges[0] < $minOffset) { // case: bytes=500-700,601-999
232
+                    $ranges[0] = $minOffset;
233
+                }
234
+                if ($ind > 0 && $rangeArray[$ind-1]['to']+1 == $ranges[0]) { // case: bytes=500-600,601-999
235
+                    $ind--;
236
+                    $ranges[0] = $rangeArray[$ind]['from'];
237
+                }
238
+            }
239
+
240
+            if (is_numeric($ranges[0]) && is_numeric($ranges[1]) && $ranges[0] < $fileSize && $ranges[0] <= $ranges[1]) {
241
+                // case: x-x
242
+                if ($ranges[1] >= $fileSize) {
243
+                    $ranges[1] = $fileSize-1;
244
+                }
245
+                $rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $ranges[1], 'size' => $fileSize );
246
+                $minOffset = $ranges[1] + 1;
247
+                if ($minOffset >= $fileSize) {
248
+                    break;
249
+                }
250
+            }
251
+            elseif (is_numeric($ranges[0]) && $ranges[0] < $fileSize) {
252
+                // case: x-
253
+                $rangeArray[$ind++] = array( 'from' => $ranges[0], 'to' => $fileSize-1, 'size' => $fileSize );
254
+                break;
255
+            }
256
+            elseif (is_numeric($ranges[1])) {
257
+                // case: -x
258
+                if ($ranges[1] > $fileSize) {
259
+                    $ranges[1] = $fileSize;
260
+                }
261
+                $rangeArray[$ind++] = array( 'from' => $fileSize-$ranges[1], 'to' => $fileSize-1, 'size' => $fileSize );
262
+                break;
263
+            }
264
+        }
265
+        return $rangeArray;
266
+    }
267
+
268
+    /**
269
+     * @param View $view
270
+     * @param string $name
271
+     * @param string $dir
272
+     * @param array $params ; 'head' boolean to only send header of the request ; 'range' http range header
273
+     */
274
+    private static function getSingleFile($view, $dir, $name, $params) {
275
+        $filename = $dir . '/' . $name;
276
+        OC_Util::obEnd();
277
+        $view->lockFile($filename, ILockingProvider::LOCK_SHARED);
278 278
 		
279
-		$rangeArray = array();
279
+        $rangeArray = array();
280 280
 
281
-		if (isset($params['range']) && substr($params['range'], 0, 6) === 'bytes=') {
282
-			$rangeArray = self::parseHttpRangeHeader(substr($params['range'], 6), 
283
-								 \OC\Files\Filesystem::filesize($filename));
284
-		}
281
+        if (isset($params['range']) && substr($params['range'], 0, 6) === 'bytes=') {
282
+            $rangeArray = self::parseHttpRangeHeader(substr($params['range'], 6), 
283
+                                    \OC\Files\Filesystem::filesize($filename));
284
+        }
285 285
 		
286
-		if (\OC\Files\Filesystem::isReadable($filename)) {
287
-			self::sendHeaders($filename, $name, $rangeArray);
288
-		} elseif (!\OC\Files\Filesystem::file_exists($filename)) {
289
-			http_response_code(404);
290
-			$tmpl = new OC_Template('', '404', 'guest');
291
-			$tmpl->printPage();
292
-			exit();
293
-		} else {
294
-			http_response_code(403);
295
-			die('403 Forbidden');
296
-		}
297
-		if (isset($params['head']) && $params['head']) {
298
-			return;
299
-		}
300
-		if (!empty($rangeArray)) {
301
-			try {
302
-			    if (count($rangeArray) == 1) {
303
-				$view->readfilePart($filename, $rangeArray[0]['from'], $rangeArray[0]['to']);
304
-			    }
305
-			    else {
306
-				// check if file is seekable (if not throw UnseekableException)
307
-				// we have to check it before body contents
308
-				$view->readfilePart($filename, $rangeArray[0]['size'], $rangeArray[0]['size']);
309
-
310
-				$type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename));
311
-
312
-				foreach ($rangeArray as $range) {
313
-				    echo "\r\n--".self::getBoundary()."\r\n".
314
-				         "Content-type: ".$type."\r\n".
315
-				         "Content-range: bytes ".$range['from']."-".$range['to']."/".$range['size']."\r\n\r\n";
316
-				    $view->readfilePart($filename, $range['from'], $range['to']);
317
-				}
318
-				echo "\r\n--".self::getBoundary()."--\r\n";
319
-			    }
320
-			} catch (\OCP\Files\UnseekableException $ex) {
321
-			    // file is unseekable
322
-			    header_remove('Accept-Ranges');
323
-			    header_remove('Content-Range');
324
-			    http_response_code(200);
325
-			    self::sendHeaders($filename, $name, array());
326
-			    $view->readfile($filename);
327
-			}
328
-		}
329
-		else {
330
-		    $view->readfile($filename);
331
-		}
332
-	}
333
-
334
-	/**
335
-	 * Returns the total (recursive) number of files and folders in the given
336
-	 * FileInfos.
337
-	 *
338
-	 * @param \OCP\Files\FileInfo[] $fileInfos the FileInfos to count
339
-	 * @return int the total number of files and folders
340
-	 */
341
-	private static function getNumberOfFiles($fileInfos) {
342
-		$numberOfFiles = 0;
343
-
344
-		$view = new View();
345
-
346
-		while ($fileInfo = array_pop($fileInfos)) {
347
-			$numberOfFiles++;
348
-
349
-			if ($fileInfo->getType() === \OCP\Files\FileInfo::TYPE_FOLDER) {
350
-				$fileInfos = array_merge($fileInfos, $view->getDirectoryContent($fileInfo->getPath()));
351
-			}
352
-		}
353
-
354
-		return $numberOfFiles;
355
-	}
356
-
357
-	/**
358
-	 * @param View $view
359
-	 * @param string $dir
360
-	 * @param string[]|string $files
361
-	 */
362
-	public static function lockFiles($view, $dir, $files) {
363
-		if (!is_array($files)) {
364
-			$file = $dir . '/' . $files;
365
-			$files = [$file];
366
-		}
367
-		foreach ($files as $file) {
368
-			$file = $dir . '/' . $file;
369
-			$view->lockFile($file, ILockingProvider::LOCK_SHARED);
370
-			if ($view->is_dir($file)) {
371
-				$contents = $view->getDirectoryContent($file);
372
-				$contents = array_map(function($fileInfo) use ($file) {
373
-					/** @var \OCP\Files\FileInfo $fileInfo */
374
-					return $file . '/' . $fileInfo->getName();
375
-				}, $contents);
376
-				self::lockFiles($view, $dir, $contents);
377
-			}
378
-		}
379
-	}
380
-
381
-	/**
382
-	 * set the maximum upload size limit for apache hosts using .htaccess
383
-	 *
384
-	 * @param int $size file size in bytes
385
-	 * @param array $files override '.htaccess' and '.user.ini' locations
386
-	 * @return bool|int false on failure, size on success
387
-	 */
388
-	public static function setUploadLimit($size, $files = []) {
389
-		//don't allow user to break his config
390
-		$size = (int)$size;
391
-		if ($size < self::UPLOAD_MIN_LIMIT_BYTES) {
392
-			return false;
393
-		}
394
-		$size = OC_Helper::phpFileSize($size);
395
-
396
-		$phpValueKeys = array(
397
-			'upload_max_filesize',
398
-			'post_max_size'
399
-		);
400
-
401
-		// default locations if not overridden by $files
402
-		$files = array_merge([
403
-			'.htaccess' => OC::$SERVERROOT . '/.htaccess',
404
-			'.user.ini' => OC::$SERVERROOT . '/.user.ini'
405
-		], $files);
406
-
407
-		$updateFiles = [
408
-			$files['.htaccess'] => [
409
-				'pattern' => '/php_value %1$s (\S)*/',
410
-				'setting' => 'php_value %1$s %2$s'
411
-			],
412
-			$files['.user.ini'] => [
413
-				'pattern' => '/%1$s=(\S)*/',
414
-				'setting' => '%1$s=%2$s'
415
-			]
416
-		];
417
-
418
-		$success = true;
419
-
420
-		foreach ($updateFiles as $filename => $patternMap) {
421
-			// suppress warnings from fopen()
422
-			$handle = @fopen($filename, 'r+');
423
-			if (!$handle) {
424
-				\OCP\Util::writeLog('files',
425
-					'Can\'t write upload limit to ' . $filename . '. Please check the file permissions',
426
-					ILogger::WARN);
427
-				$success = false;
428
-				continue; // try to update as many files as possible
429
-			}
430
-
431
-			$content = '';
432
-			while (!feof($handle)) {
433
-				$content .= fread($handle, 1000);
434
-			}
435
-
436
-			foreach ($phpValueKeys as $key) {
437
-				$pattern = vsprintf($patternMap['pattern'], [$key]);
438
-				$setting = vsprintf($patternMap['setting'], [$key, $size]);
439
-				$hasReplaced = 0;
440
-				$newContent = preg_replace($pattern, $setting, $content, 2, $hasReplaced);
441
-				if ($newContent !== null) {
442
-					$content = $newContent;
443
-				}
444
-				if ($hasReplaced === 0) {
445
-					$content .= "\n" . $setting;
446
-				}
447
-			}
448
-
449
-			// write file back
450
-			ftruncate($handle, 0);
451
-			rewind($handle);
452
-			fwrite($handle, $content);
453
-
454
-			fclose($handle);
455
-		}
456
-
457
-		if ($success) {
458
-			return OC_Helper::computerFileSize($size);
459
-		}
460
-		return false;
461
-	}
462
-
463
-	/**
464
-	 * @param string $dir
465
-	 * @param $files
466
-	 * @param integer $getType
467
-	 * @param View $view
468
-	 * @param string $filename
469
-	 */
470
-	private static function unlockAllTheFiles($dir, $files, $getType, $view, $filename) {
471
-		if ($getType === self::FILE) {
472
-			$view->unlockFile($filename, ILockingProvider::LOCK_SHARED);
473
-		}
474
-		if ($getType === self::ZIP_FILES) {
475
-			foreach ($files as $file) {
476
-				$file = $dir . '/' . $file;
477
-				$view->unlockFile($file, ILockingProvider::LOCK_SHARED);
478
-			}
479
-		}
480
-		if ($getType === self::ZIP_DIR) {
481
-			$file = $dir . '/' . $files;
482
-			$view->unlockFile($file, ILockingProvider::LOCK_SHARED);
483
-		}
484
-	}
286
+        if (\OC\Files\Filesystem::isReadable($filename)) {
287
+            self::sendHeaders($filename, $name, $rangeArray);
288
+        } elseif (!\OC\Files\Filesystem::file_exists($filename)) {
289
+            http_response_code(404);
290
+            $tmpl = new OC_Template('', '404', 'guest');
291
+            $tmpl->printPage();
292
+            exit();
293
+        } else {
294
+            http_response_code(403);
295
+            die('403 Forbidden');
296
+        }
297
+        if (isset($params['head']) && $params['head']) {
298
+            return;
299
+        }
300
+        if (!empty($rangeArray)) {
301
+            try {
302
+                if (count($rangeArray) == 1) {
303
+                $view->readfilePart($filename, $rangeArray[0]['from'], $rangeArray[0]['to']);
304
+                }
305
+                else {
306
+                // check if file is seekable (if not throw UnseekableException)
307
+                // we have to check it before body contents
308
+                $view->readfilePart($filename, $rangeArray[0]['size'], $rangeArray[0]['size']);
309
+
310
+                $type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename));
311
+
312
+                foreach ($rangeArray as $range) {
313
+                    echo "\r\n--".self::getBoundary()."\r\n".
314
+                            "Content-type: ".$type."\r\n".
315
+                            "Content-range: bytes ".$range['from']."-".$range['to']."/".$range['size']."\r\n\r\n";
316
+                    $view->readfilePart($filename, $range['from'], $range['to']);
317
+                }
318
+                echo "\r\n--".self::getBoundary()."--\r\n";
319
+                }
320
+            } catch (\OCP\Files\UnseekableException $ex) {
321
+                // file is unseekable
322
+                header_remove('Accept-Ranges');
323
+                header_remove('Content-Range');
324
+                http_response_code(200);
325
+                self::sendHeaders($filename, $name, array());
326
+                $view->readfile($filename);
327
+            }
328
+        }
329
+        else {
330
+            $view->readfile($filename);
331
+        }
332
+    }
333
+
334
+    /**
335
+     * Returns the total (recursive) number of files and folders in the given
336
+     * FileInfos.
337
+     *
338
+     * @param \OCP\Files\FileInfo[] $fileInfos the FileInfos to count
339
+     * @return int the total number of files and folders
340
+     */
341
+    private static function getNumberOfFiles($fileInfos) {
342
+        $numberOfFiles = 0;
343
+
344
+        $view = new View();
345
+
346
+        while ($fileInfo = array_pop($fileInfos)) {
347
+            $numberOfFiles++;
348
+
349
+            if ($fileInfo->getType() === \OCP\Files\FileInfo::TYPE_FOLDER) {
350
+                $fileInfos = array_merge($fileInfos, $view->getDirectoryContent($fileInfo->getPath()));
351
+            }
352
+        }
353
+
354
+        return $numberOfFiles;
355
+    }
356
+
357
+    /**
358
+     * @param View $view
359
+     * @param string $dir
360
+     * @param string[]|string $files
361
+     */
362
+    public static function lockFiles($view, $dir, $files) {
363
+        if (!is_array($files)) {
364
+            $file = $dir . '/' . $files;
365
+            $files = [$file];
366
+        }
367
+        foreach ($files as $file) {
368
+            $file = $dir . '/' . $file;
369
+            $view->lockFile($file, ILockingProvider::LOCK_SHARED);
370
+            if ($view->is_dir($file)) {
371
+                $contents = $view->getDirectoryContent($file);
372
+                $contents = array_map(function($fileInfo) use ($file) {
373
+                    /** @var \OCP\Files\FileInfo $fileInfo */
374
+                    return $file . '/' . $fileInfo->getName();
375
+                }, $contents);
376
+                self::lockFiles($view, $dir, $contents);
377
+            }
378
+        }
379
+    }
380
+
381
+    /**
382
+     * set the maximum upload size limit for apache hosts using .htaccess
383
+     *
384
+     * @param int $size file size in bytes
385
+     * @param array $files override '.htaccess' and '.user.ini' locations
386
+     * @return bool|int false on failure, size on success
387
+     */
388
+    public static function setUploadLimit($size, $files = []) {
389
+        //don't allow user to break his config
390
+        $size = (int)$size;
391
+        if ($size < self::UPLOAD_MIN_LIMIT_BYTES) {
392
+            return false;
393
+        }
394
+        $size = OC_Helper::phpFileSize($size);
395
+
396
+        $phpValueKeys = array(
397
+            'upload_max_filesize',
398
+            'post_max_size'
399
+        );
400
+
401
+        // default locations if not overridden by $files
402
+        $files = array_merge([
403
+            '.htaccess' => OC::$SERVERROOT . '/.htaccess',
404
+            '.user.ini' => OC::$SERVERROOT . '/.user.ini'
405
+        ], $files);
406
+
407
+        $updateFiles = [
408
+            $files['.htaccess'] => [
409
+                'pattern' => '/php_value %1$s (\S)*/',
410
+                'setting' => 'php_value %1$s %2$s'
411
+            ],
412
+            $files['.user.ini'] => [
413
+                'pattern' => '/%1$s=(\S)*/',
414
+                'setting' => '%1$s=%2$s'
415
+            ]
416
+        ];
417
+
418
+        $success = true;
419
+
420
+        foreach ($updateFiles as $filename => $patternMap) {
421
+            // suppress warnings from fopen()
422
+            $handle = @fopen($filename, 'r+');
423
+            if (!$handle) {
424
+                \OCP\Util::writeLog('files',
425
+                    'Can\'t write upload limit to ' . $filename . '. Please check the file permissions',
426
+                    ILogger::WARN);
427
+                $success = false;
428
+                continue; // try to update as many files as possible
429
+            }
430
+
431
+            $content = '';
432
+            while (!feof($handle)) {
433
+                $content .= fread($handle, 1000);
434
+            }
435
+
436
+            foreach ($phpValueKeys as $key) {
437
+                $pattern = vsprintf($patternMap['pattern'], [$key]);
438
+                $setting = vsprintf($patternMap['setting'], [$key, $size]);
439
+                $hasReplaced = 0;
440
+                $newContent = preg_replace($pattern, $setting, $content, 2, $hasReplaced);
441
+                if ($newContent !== null) {
442
+                    $content = $newContent;
443
+                }
444
+                if ($hasReplaced === 0) {
445
+                    $content .= "\n" . $setting;
446
+                }
447
+            }
448
+
449
+            // write file back
450
+            ftruncate($handle, 0);
451
+            rewind($handle);
452
+            fwrite($handle, $content);
453
+
454
+            fclose($handle);
455
+        }
456
+
457
+        if ($success) {
458
+            return OC_Helper::computerFileSize($size);
459
+        }
460
+        return false;
461
+    }
462
+
463
+    /**
464
+     * @param string $dir
465
+     * @param $files
466
+     * @param integer $getType
467
+     * @param View $view
468
+     * @param string $filename
469
+     */
470
+    private static function unlockAllTheFiles($dir, $files, $getType, $view, $filename) {
471
+        if ($getType === self::FILE) {
472
+            $view->unlockFile($filename, ILockingProvider::LOCK_SHARED);
473
+        }
474
+        if ($getType === self::ZIP_FILES) {
475
+            foreach ($files as $file) {
476
+                $file = $dir . '/' . $file;
477
+                $view->unlockFile($file, ILockingProvider::LOCK_SHARED);
478
+            }
479
+        }
480
+        if ($getType === self::ZIP_DIR) {
481
+            $file = $dir . '/' . $files;
482
+            $view->unlockFile($file, ILockingProvider::LOCK_SHARED);
483
+        }
484
+    }
485 485
 
486 486
 }
Please login to merge, or discard this patch.