|
|
|
@ -34,10 +34,19 @@ class OC_FileChunking { |
|
|
|
return $this->cache; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Stores the given $data under the given $key - the number of stored bytes is returned |
|
|
|
* |
|
|
|
* @param $index |
|
|
|
* @param $data |
|
|
|
* @return int |
|
|
|
*/ |
|
|
|
public function store($index, $data) { |
|
|
|
$cache = $this->getCache(); |
|
|
|
$name = $this->getPrefix().$index; |
|
|
|
$cache->set($name, $data); |
|
|
|
|
|
|
|
return $cache->size($name); |
|
|
|
} |
|
|
|
|
|
|
|
public function isComplete() { |
|
|
|
@ -58,12 +67,24 @@ class OC_FileChunking { |
|
|
|
$count = 0; |
|
|
|
for($i=0; $i < $this->info['chunkcount']; $i++) { |
|
|
|
$chunk = $cache->get($prefix.$i); |
|
|
|
$cache->remove($prefix.$i); |
|
|
|
$count += fwrite($f, $chunk); |
|
|
|
} |
|
|
|
|
|
|
|
$this->cleanup(); |
|
|
|
return $count; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Removes all chunks which belong to this transmission |
|
|
|
*/ |
|
|
|
public function cleanup() { |
|
|
|
$cache = $this->getCache(); |
|
|
|
$prefix = $this->getPrefix(); |
|
|
|
for($i=0; $i < $this->info['chunkcount']; $i++) { |
|
|
|
$cache->remove($prefix.$i); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public function signature_split($orgfile, $input) { |
|
|
|
$info = unpack('n', fread($input, 2)); |
|
|
|
$blocksize = $info[1]; |
|
|
|
|