Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Schießle <bjoern@schiessle.org>2013-03-07 17:45:19 +0400
committerBjörn Schießle <bjoern@schiessle.org>2013-03-07 17:45:19 +0400
commit7c16c2c9ae2be3743a9ffc6a37484899784ed46c (patch)
treef9ef1bf8d985dc64edc3a526b48dbdf507b70e19
parent97222b1de5349ac31abf518b7fd762b24947e237 (diff)
parentce9942331eb09b5e1ae6f38791776625f6663419 (diff)
Merge pull request #2163 from owncloud/fix_file_download
json encode list of files
-rw-r--r--apps/files/ajax/download.php8
-rw-r--r--apps/files/js/files.js5
-rw-r--r--lib/files.php13
3 files changed, 20 insertions, 6 deletions
diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php
index b9a4ddaf5e7..7c8dcb372e2 100644
--- a/apps/files/ajax/download.php
+++ b/apps/files/ajax/download.php
@@ -33,4 +33,10 @@ OCP\User::checkLoggedIn();
$files = $_GET["files"];
$dir = $_GET["dir"];
-OC_Files::get($dir, $files, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+$files_list = json_decode($files);
+// in case we get only a single file
+if ($files_list === NULL ) {
+ $files_list = array($files);
+}
+
+OC_Files::get($dir, $files_list, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 464f7703685..a4ef41c2803 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -220,14 +220,15 @@ $(document).ready(function() {
});
$('.download').click('click',function(event) {
- var files=getSelectedFiles('name').join(';');
+ var files=getSelectedFiles('name');
+ var fileslist = JSON.stringify(files);
var dir=$('#dir').val()||'/';
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;
} else {
- window.location=OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: files });
+ window.location=OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: fileslist });
}
return false;
});
diff --git a/lib/files.php b/lib/files.php
index b594b78c4b7..447ffb50577 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -49,8 +49,9 @@ class OC_Files {
isset($_SERVER['MOD_X_ACCEL_REDIRECT_ENABLED'])) {
$xsendfile = true;
}
- if(strpos($files, ';')) {
- $files=explode(';', $files);
+
+ if (count($files) == 1) {
+ $files = $files[0];
}
if (is_array($files)) {
@@ -77,7 +78,13 @@ class OC_Files {
}
}
$zip->close();
- $name = basename($dir) . '.zip';
+ $basename = basename($dir);
+ if ($basename) {
+ $name = $basename . '.zip';
+ } else {
+ $name = 'owncloud.zip';
+ }
+
set_time_limit($executionTime);
} elseif (\OC\Files\Filesystem::is_dir($dir . '/' . $files)) {
self::validateZipDownload($dir, $files);