From 27cc333dfef71a4331ad66fa7ce0b1de53e73099 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Mon, 25 Nov 2013 15:35:26 +0100
Subject: [PATCH] adding chunked upload handling

---
 lib/private/connector/sabre/filesplugin.php | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/private/connector/sabre/filesplugin.php b/lib/private/connector/sabre/filesplugin.php
index 1c80ebe804..65231040fb 100644
--- a/lib/private/connector/sabre/filesplugin.php
+++ b/lib/private/connector/sabre/filesplugin.php
@@ -78,7 +78,19 @@ class OC_Connector_Sabre_FilesPlugin extends Sabre_DAV_ServerPlugin
 	 * @throws Sabre_DAV_Exception_BadRequest
 	 */
 	public function sendFileIdHeader($filePath, Sabre_DAV_INode $node = null) {
+		// chunked upload handling
+		if (isset($_SERVER['HTTP_OC_CHUNKED'])) {
+			list($path, $name) = \Sabre_DAV_URLUtil::splitPath($filePath);
+			$info = OC_FileChunking::decodeName($name);
+			if (!empty($info)) {
+				$filePath = $path . '/' . $info['name'];
+			}
+		}
+
 		// we get the node for the given $filePath here because in case of afterCreateFile $node is the parent folder
+		if (!$this->server->tree->nodeExists($filePath)) {
+			return;
+		}
 		$node = $this->server->tree->getNodeForPath($filePath);
 		if ($node instanceof OC_Connector_Sabre_Node) {
 			$fileId = $node->getFileId();
-- 
GitLab