- require(JIRAFEAU_ROOT . 'lib/template/header.php');
- echo '<div class="error"><p>Error 404: Not Found</p></div>';
- require(JIRAFEAU_ROOT . 'lib/template/footer.php');
- exit;
- }
-} else {
- header('Location: ' . $cfg['web_root']);
- exit;
+header ('HTTP/1.0 200 OK');
+header ('Content-Length: ' . $link['file_size']);
+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 encrypted file. */
+if ($link['crypted'])
+{
+ /* Extract key and iv. */
+ $ex = explode (".", $crypt_key);
+ $key = $ex[0];
+ $iv = base64_decode($ex[1]);
+ error_log ("crypt_key: " . $crypt_key . " iv: " . $v . " key: ". $key . "\n", 3, "debug.log");
+ /* Init module */
+ $m = mcrypt_module_open('rijndael-256', '', 'ofb', '');
+ mcrypt_generic_init($m, $key, $iv);
+ /* Decrypt file. */
+ $r = fopen (VAR_FILES . $p . $link['md5'], 'r');
+ while (!feof ($r))
+ {
+ $dec = mdecrypt_generic($m, fread ($r, 1024));
+ print $dec;
+ ob_flush();
+ }
+ fclose ($r);
+ /* Cleanup. */
+ mcrypt_generic_deinit($m);
+ mcrypt_module_close($m);