workaround for 32-bit systems to handle filesizes bigger than 2GB
This commit is contained in:
parent
34e5cb5070
commit
045c0acc92
|
@ -21,7 +21,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provde a common interface to all different storage options
|
* Provide a common interface to all different storage options
|
||||||
*/
|
*/
|
||||||
abstract class OC_Filestorage{
|
abstract class OC_Filestorage{
|
||||||
abstract public function __construct($parameters);
|
abstract public function __construct($parameters);
|
||||||
|
|
|
@ -29,7 +29,24 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{
|
||||||
return is_file($this->datadir.$path);
|
return is_file($this->datadir.$path);
|
||||||
}
|
}
|
||||||
public function stat($path) {
|
public function stat($path) {
|
||||||
return stat($this->datadir.$path);
|
$fullPath = $this->datadir.$path;
|
||||||
|
$statResult = stat($fullPath);
|
||||||
|
|
||||||
|
// special case for 32-bit systems
|
||||||
|
if (PHP_INT_SIZE===4) {
|
||||||
|
if (!(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'))
|
||||||
|
$size = (float)exec('stat -c %s '. escapeshellarg ($fullPath));
|
||||||
|
else{
|
||||||
|
$fsobj = new COM("Scripting.FileSystemObject");
|
||||||
|
$f = $fsobj->GetFile($fullPath);
|
||||||
|
$size = $f->Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
$statResult['size'] = $size;
|
||||||
|
$statResult[7] = $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $statResult;
|
||||||
}
|
}
|
||||||
public function filetype($path) {
|
public function filetype($path) {
|
||||||
$filetype=filetype($this->datadir.$path);
|
$filetype=filetype($this->datadir.$path);
|
||||||
|
|
Loading…
Reference in New Issue