Blame view

sources/apps/updater/ajax/backup/download.php 1016 Bytes
d1bafeea1   Kload   [fix] Upgrade to ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  <?php
  
  /**
   * ownCloud - Updater plugin
   *
   * @author Victor Dubiniuk
   * @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com
   *
   * This file is licensed under the Affero General Public License version 3 or
   * later.
   */
  
  namespace OCA\Updater;
  
  \OCP\JSON::checkAdminUser();
  \OCP\JSON::callCheck();
  
  $file = basename(
  	@$_GET["filename"]
  );
  
  // Prevent directory traversal
  if (strlen($file)<3) {
  	exit;
  }
  
  $filename = App::getBackupBase() . $file;
  
  if(!@file_exists($filename)) {
  	exit;
  }
  
  header('Content-Type:' . 
  		\OCP\Files::getMimeType($filename)
  );
  if (preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"])) {
  	header('Content-Disposition: attachment; filename="' . rawurlencode(basename($filename)) . '"');
  } else {
  	header('Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode(basename($filename))
  		 . '; filename="' . rawurlencode(basename($filename)) . '"');
  }
  
  \OCP\Response::disableCaching();
  header('Content-Length: ' . filesize($filename));
  
  \OC_Util::obEnd();
  readfile($filename);