aboutsummaryrefslogtreecommitdiffstats
path: root/lib/connector
diff options
context:
space:
mode:
authorJörn Friedrich Dreyer <jfd@butonic.de>2013-02-10 18:17:10 +0100
committerJörn Friedrich Dreyer <jfd@butonic.de>2013-02-11 09:53:07 +0100
commit2cb2991c049387290d6ba71a08381aeac4de2fe3 (patch)
treeaef8de445b32c781ba2737dc211c63c3cbf1e0c1 /lib/connector
parent15ab2fd52aa3d2971682406a0add82ba453f82f6 (diff)
downloadnextcloud-server-2cb2991c049387290d6ba71a08381aeac4de2fe3.tar.gz
nextcloud-server-2cb2991c049387290d6ba71a08381aeac4de2fe3.zip
delete partial file when file upload is aborted
Diffstat (limited to 'lib/connector')
-rw-r--r--lib/connector/sabre/directory.php15
-rw-r--r--lib/connector/sabre/file.php16
2 files changed, 17 insertions, 14 deletions
diff --git a/lib/connector/sabre/directory.php b/lib/connector/sabre/directory.php
index a5676d656ec..f9245115353 100644
--- a/lib/connector/sabre/directory.php
+++ b/lib/connector/sabre/directory.php
@@ -69,13 +69,14 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
\OC\Files\Filesystem::file_put_contents($partpath, $data);
//detect aborted upload
- if (isset($_SERVER['CONTENT_LENGTH'])
- && \OC\Files\Filesystem::filesize($partpath) != $_SERVER['CONTENT_LENGTH'])
- {
- throw new Sabre_DAV_Exception_BadRequest(
- 'expected filesize ' . $_SERVER['CONTENT_LENGTH'].
- ' got ' . \OC\Files\Filesystem::filesize($partpath)
- );
+ if (isset($_SERVER['CONTENT_LENGTH'])) {
+ $expected = $_SERVER['CONTENT_LENGTH'];
+ $actual = \OC\Files\Filesystem::filesize($partpath);
+ if ($actual != $expected) {
+ \OC\Files\Filesystem::unlink($partpath);
+ throw new Sabre_DAV_Exception_BadRequest(
+ 'expected filesize ' . $expected . ' got ' . $actual);
+ }
}
// rename to correct path
diff --git a/lib/connector/sabre/file.php b/lib/connector/sabre/file.php
index ab342fa2c64..e5436f0ad12 100644
--- a/lib/connector/sabre/file.php
+++ b/lib/connector/sabre/file.php
@@ -51,14 +51,16 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D
\OC\Files\Filesystem::file_put_contents($partpath, $data);
//detect aborted upload
- if (isset($_SERVER['CONTENT_LENGTH'])
- && \OC\Files\Filesystem::filesize($partpath) != $_SERVER['CONTENT_LENGTH'])
- {
- throw new Sabre_DAV_Exception_BadRequest(
- 'expected filesize ' . $_SERVER['CONTENT_LENGTH'].
- ' got ' . \OC\Files\Filesystem::filesize($partpath)
- );
+ if (isset($_SERVER['CONTENT_LENGTH'])) {
+ $expected = $_SERVER['CONTENT_LENGTH'];
+ $actual = \OC\Files\Filesystem::filesize($partpath);
+ if ($actual != $expected) {
+ \OC\Files\Filesystem::unlink($partpath);
+ throw new Sabre_DAV_Exception_BadRequest(
+ 'expected filesize ' . $expected . ' got ' . $actual);
+ }
}
+
// rename to correct path
\OC\Files\Filesystem::rename($partpath, $this->path);