-
Notifications
You must be signed in to change notification settings - Fork 0
/
download.php
54 lines (49 loc) · 2.51 KB
/
download.php
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
48
49
50
51
52
53
54
<?php
require_once 'init.php';
new TSession;
if (isset($_GET['file']) AND TSession::getValue('logged') )
{
$file = $_GET['file'];
$info = pathinfo($file);
$extension = $info['extension'];
$content_type_list = array();
$content_type_list['txt'] = 'text/plain';
$content_type_list['html'] = 'text/html';
$content_type_list['csv'] = 'text/csv';
$content_type_list['pdf'] = 'application/pdf';
$content_type_list['rtf'] = 'application/rtf';
$content_type_list['doc'] = 'application/msword';
$content_type_list['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
$content_type_list['xls'] = 'application/vnd.ms-excel';
$content_type_list['xlsx'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
$content_type_list['ppt'] = 'application/vnd.ms-powerpoint';
$content_type_list['pptx'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
$content_type_list['odt'] = 'application/vnd.oasis.opendocument.text';
$content_type_list['ods'] = 'application/vnd.oasis.opendocument.spreadsheet';
$content_type_list['jpeg'] = 'image/jpeg';
$content_type_list['jpg'] = 'image/jpeg';
$content_type_list['png'] = 'image/png';
$content_type_list['gif'] = 'image/gif';
$content_type_list['svg'] = 'image/svg+xml';
$content_type_list['xml'] = 'application/xml';
$content_type_list['zip'] = 'application/zip';
$content_type_list['rar'] = 'application/x-rar-compressed';
$content_type_list['bz'] = 'application/x-bzip';
$content_type_list['bz2'] = 'application/x-bzip2';
$content_type_list['tar'] = 'application/x-tar';
if (file_exists($file) AND in_array(strtolower($extension), array_keys($content_type_list)))
{
$basename = !empty($_GET['basename']) ? $_GET['basename'] : basename($file);
$filesize = filesize($file); // get the filesize
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: " . $content_type_list[strtolower($extension)] );
header("Content-Length: {$filesize}");
header("Content-disposition: inline; filename=\"{$basename}\"");
header("Content-Transfer-Encoding: binary");
// a readfile da problemas no internet explorer
// melhor jogar direto o conteudo do arquivo na tela
echo file_get_contents($file);
}
}