X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/a2a87c7364ccc5910fd09a62978f55cb2b3e477f..13e2e31c60052e3572ad1bb091bf81ae62f00aca:/file.php?ds=inline diff --git a/file.php b/file.php index 1f79095..710ce3d 100644 --- a/file.php +++ b/file.php @@ -30,9 +30,14 @@ if (!isset ($_GET['h']) || empty ($_GET['h'])) exit; } +/* Operations may take a long time. + * Be sure PHP's safe mode is off. + */ + set_time_limit(0); + $link_name = $_GET['h']; -if (!preg_match ('/[0-9a-f]{32}$/', $link_name)) +if (!preg_match ('/[0-9a-zA-Z_-]{22}$/', $link_name)) { require (JIRAFEAU_ROOT.'lib/template/header.php'); echo '

' . t('Sorry, the requested file is not found') . '

'; @@ -101,7 +106,7 @@ if (!empty ($link['key'])) if (!isset ($_POST['key'])) { require (JIRAFEAU_ROOT.'lib/template/header.php'); - echo '
' . + echo '
' . '
'; ?> ' . + '' . + '
' . t('Give the password of this file') . ' : ' . '' . - '
'; - + '
' . + t('By using our services, you accept of our'). ' ' . t('Term Of Service') . '' . + '
'; ?>' . + echo '
' . ''; ?> ' . - '

' . ('You are about to download ') . substr ($link['file_name'], 0, 20) . ' (' . jirafeau_human_size($link['file_size']) . ')

' . - '

' . t('By using our services, you accept of our '). '' . t('Term Of Service') . '' . '

'. - '

' + echo '

' . $link['file_name'] . '' . + '' . + ''; + echo '
' . + t('You are about to download') . ' "' . $link['file_name'] . '" (' . jirafeau_human_size($link['file_size']) . ')' . + '
' . + t('By using our services, you accept of our'). ' ' . t('Term Of Service') . ''; ?>&bp=1'; document.getElementById('submit_preview').submit ();"/>'; + echo '
'; require (JIRAFEAU_ROOT.'lib/template/footer.php'); exit; } +header ('HTTP/1.0 200 OK'); header ('Content-Length: ' . $link['file_size']); -header ('Content-Type: ' . $link['mime_type']); if (!jirafeau_is_viewable ($link['mime_type']) || !$cfg['preview'] || $button_download) -{ header ('Content-Disposition: attachment; filename="' . $link['file_name'] . '"'); +else + header ('Content-Type: ' . $link['mime_type']); + +/* Read file */ +$r = fopen (VAR_FILES . $p . $link['md5'], 'r'); +while (!feof ($r)) +{ + print fread ($r, 1024); + ob_flush(); } -readfile (VAR_FILES . $p . $link['md5']); +fclose ($r); + +//readfile (VAR_FILES . $p . $link['md5']); if ($link['onetime'] == 'O') jirafeau_delete_link ($link_name);