Send correct path on file upload when using public app

Fix issue #7152
This commit is contained in:
Joas Schilling 2014-02-12 11:43:34 +01:00
parent 3699728a3a
commit 9619459e37
1 changed files with 12 additions and 4 deletions

View File

@ -22,6 +22,7 @@ if (empty($_POST['dirToken'])) {
} else { } else {
// return only read permissions for public upload // return only read permissions for public upload
$allowedPermissions = OCP\PERMISSION_READ; $allowedPermissions = OCP\PERMISSION_READ;
$public_directory = !empty($_POST['subdir']) ? $_POST['subdir'] : '/';
$linkItem = OCP\Share::getShareByToken($_POST['dirToken']); $linkItem = OCP\Share::getShareByToken($_POST['dirToken']);
if ($linkItem === false) { if ($linkItem === false) {
@ -45,7 +46,7 @@ if (empty($_POST['dirToken'])) {
$dir = sprintf( $dir = sprintf(
"/%s/%s", "/%s/%s",
$path, $path,
isset($_POST['subdir']) ? $_POST['subdir'] : '' $public_directory
); );
if (!$dir || empty($dir) || $dir === false) { if (!$dir || empty($dir) || $dir === false) {
@ -112,7 +113,14 @@ if (strpos($dir, '..') === false) {
} else { } else {
$target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]); $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]);
} }
$directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
if (isset($public_directory)) {
// If we are uploading from the public app,
// we want to send the relative path in the ajax request.
$directory = $public_directory;
}
if ( ! \OC\Files\Filesystem::file_exists($target) if ( ! \OC\Files\Filesystem::file_exists($target)
|| (isset($_POST['resolution']) && $_POST['resolution']==='replace') || (isset($_POST['resolution']) && $_POST['resolution']==='replace')
) { ) {
@ -140,7 +148,7 @@ if (strpos($dir, '..') === false) {
'uploadMaxFilesize' => $maxUploadFileSize, 'uploadMaxFilesize' => $maxUploadFileSize,
'maxHumanFilesize' => $maxHumanFileSize, 'maxHumanFilesize' => $maxHumanFileSize,
'permissions' => $meta['permissions'] & $allowedPermissions, 'permissions' => $meta['permissions'] & $allowedPermissions,
'directory' => \OC\Files\Filesystem::normalizePath(stripslashes($dir)), 'directory' => $directory,
); );
} }
@ -168,7 +176,7 @@ if (strpos($dir, '..') === false) {
'uploadMaxFilesize' => $maxUploadFileSize, 'uploadMaxFilesize' => $maxUploadFileSize,
'maxHumanFilesize' => $maxHumanFileSize, 'maxHumanFilesize' => $maxHumanFileSize,
'permissions' => $meta['permissions'] & $allowedPermissions, 'permissions' => $meta['permissions'] & $allowedPermissions,
'directory' => \OC\Files\Filesystem::normalizePath(stripslashes($dir)), 'directory' => $directory,
); );
} }
} }