summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2013-03-13 11:15:17 +0100
committerBjörn Schießle <schiessle@owncloud.com>2013-03-13 11:15:17 +0100
commitf971ce0b66ba32b1946df493ab5a937e4a778548 (patch)
tree3a83ed58256a7ccb7331163f504eb499640e50ac /apps
parentf3a2daaa9d4fd574236b9168cdd6b0598d8578ce (diff)
downloadnextcloud-server-f971ce0b66ba32b1946df493ab5a937e4a778548.tar.gz
nextcloud-server-f971ce0b66ba32b1946df493ab5a937e4a778548.zip
let public link download handle json encoded file lists
Diffstat (limited to 'apps')
-rw-r--r--apps/files/js/files.js2
-rw-r--r--apps/files_sharing/public.php8
2 files changed, 8 insertions, 2 deletions
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index a4ef41c2803..82069e3bc57 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -226,7 +226,7 @@ $(document).ready(function() {
OC.Notification.show(t('files','Your download is being prepared. This might take some time if the files are big.'));
// use special download URL if provided, e.g. for public shared files
if ( (downloadURL = document.getElementById("downloadURL")) ) {
- window.location=downloadURL.value+"&download&files="+files;
+ window.location=downloadURL.value+"&download&files="+encodeURIComponent(fileslist);
} else {
window.location=OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: fileslist });
}
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 1da972ad7e3..c8aca498f8c 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -113,7 +113,13 @@ if (isset($path)) {
// Download the file
if (isset($_GET['download'])) {
if (isset($_GET['files'])) { // download selected files
- OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+ $files = urldecode($_GET['files']);
+ $files_list = json_decode($files);
+ // in case we get only a single file
+ if ($files_list === NULL ) {
+ $files_list = array($files);
+ }
+ OC_Files::get($path, $files_list, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
} else {
OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
}