Merge pull request #2163 from owncloud/fix_file_download

json encode list of files
This commit is contained in:
Björn Schießle 2013-03-07 05:45:19 -08:00
commit 7c16c2c9ae
3 changed files with 20 additions and 6 deletions

View File

@ -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);

View File

@ -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;
});

View File

@ -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);