|
|
|
|
@ -37,10 +37,10 @@ class OC_Files {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* return the content of a file or return a zip file containning multiply files
|
|
|
|
|
* return the content of a file or return a zip file containing multiple files
|
|
|
|
|
*
|
|
|
|
|
* @param string $dir
|
|
|
|
|
* @param string $file ; seperated list of files to download
|
|
|
|
|
* @param string $file ; separated list of files to download
|
|
|
|
|
* @param boolean $only_header ; boolean to only send header of the request
|
|
|
|
|
*/
|
|
|
|
|
public static function get($dir, $files, $only_header = false) {
|
|
|
|
|
@ -77,6 +77,7 @@ class OC_Files {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$zip->close();
|
|
|
|
|
$name = basename($dir) . '.zip';
|
|
|
|
|
set_time_limit($executionTime);
|
|
|
|
|
} elseif (\OC\Files\Filesystem::is_dir($dir . '/' . $files)) {
|
|
|
|
|
self::validateZipDownload($dir, $files);
|
|
|
|
|
@ -94,18 +95,20 @@ class OC_Files {
|
|
|
|
|
$file = $dir . '/' . $files;
|
|
|
|
|
self::zipAddDir($file, $zip);
|
|
|
|
|
$zip->close();
|
|
|
|
|
$name = $files . '.zip';
|
|
|
|
|
set_time_limit($executionTime);
|
|
|
|
|
} else {
|
|
|
|
|
$zip = false;
|
|
|
|
|
$filename = $dir . '/' . $files;
|
|
|
|
|
$name = $files;
|
|
|
|
|
}
|
|
|
|
|
OC_Util::obEnd();
|
|
|
|
|
if ($zip or \OC\Files\Filesystem::isReadable($filename)) {
|
|
|
|
|
if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
|
|
|
|
|
header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' );
|
|
|
|
|
header( 'Content-Disposition: attachment; filename="' . rawurlencode($name) . '"' );
|
|
|
|
|
} else {
|
|
|
|
|
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) )
|
|
|
|
|
. '; filename="' . rawurlencode( basename($filename) ) . '"' );
|
|
|
|
|
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode($name)
|
|
|
|
|
. '; filename="' . rawurlencode($name) . '"' );
|
|
|
|
|
}
|
|
|
|
|
header('Content-Transfer-Encoding: binary');
|
|
|
|
|
OC_Response::disableCaching();
|
|
|
|
|
@ -125,7 +128,7 @@ class OC_Files {
|
|
|
|
|
} elseif ($zip or !\OC\Files\Filesystem::file_exists($filename)) {
|
|
|
|
|
header("HTTP/1.0 404 Not Found");
|
|
|
|
|
$tmpl = new OC_Template('', '404', 'guest');
|
|
|
|
|
$tmpl->assign('file', $filename);
|
|
|
|
|
$tmpl->assign('file', $name);
|
|
|
|
|
$tmpl->printPage();
|
|
|
|
|
} else {
|
|
|
|
|
header("HTTP/1.0 403 Forbidden");
|
|
|
|
|
|