check Content-Length to detect aborted uploads

remotes/origin/stable5
Jörn Friedrich Dreyer 14 years ago
parent 806522d007
commit 15ab2fd52a
  1. 10
      lib/connector/sabre/directory.php
  2. 9
      lib/connector/sabre/file.php

@ -68,6 +68,16 @@ 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)
);
}
// rename to correct path
\OC\Files\Filesystem::rename($partpath, $newPath);

@ -50,6 +50,15 @@ 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)
);
}
// rename to correct path
\OC\Files\Filesystem::rename($partpath, $this->path);

Loading…
Cancel
Save