function download() { $fileid = JRequest::getVar('fileid', 0, '', 'int'); $db = JFactory::getDBO(); $query = 'SELECT * FROM #__fss_kb_attach WHERE id = "' . FSSJ3Helper::getEscaped($db, $fileid) . '"'; $db->setQuery($query); $row = $db->loadAssoc(); $filename = FSS_Helper::basename($row['filename']); $file_extension = strtolower(substr(strrchr($filename, "."), 1)); $ctype = FSS_Helper::datei_mime($file_extension); while (ob_get_level() > 0) { ob_end_clean(); } header("Cache-Control: public, must-revalidate"); header('Cache-Control: pre-check=0, post-check=0, max-age=0'); header("Pragma: no-cache"); header("Expires: 0"); header("Content-Description: File Transfer"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Content-Type: " . $ctype); //header("Content-Length: ".(string)$row['size']); header('Content-Disposition: attachment; filename="' . $filename . '"'); header("Content-Transfer-Encoding: binary\n"); //echo getcwd(). "<br>"; $file = "../components/com_fss/files/" . $row['diskfile']; //echo $file; @readfile($file); exit; }
function downloadFile() { $fileid = FSS_Input::getInt('fileid'); $db = JFactory::getDBO(); $query = 'SELECT * FROM #__fss_kb_attach WHERE id = "' . FSSJ3Helper::getEscaped($db, $fileid) . '"'; $db->setQuery($query); $row = $db->loadAssoc(); $filename = FSS_Helper::basename($row['filename']); $file_extension = strtolower(substr(strrchr($filename, "."), 1)); $ctype = FSS_Helper::datei_mime($file_extension); if (ob_get_level() > 0) { ob_end_clean(); } $file = JPATH_SITE . DS . FSS_Settings::get('attach_location') . DS . 'kb' . DS . $row['diskfile']; if (!file_exists($file)) { $file = JPATH_SITE . DS . FSS_Settings::get('attach_location') . DS . $row['diskfile']; } if (!file_exists($file)) { echo "File not found - " . $row['diskfile'] . "<br />"; echo "Paths Tested:<br />"; echo "<ul>"; echo "<li>" . JPATH_SITE . DS . FSS_Settings::get('attach_location') . DS . 'kb' . "</li>"; echo "<li>" . JPATH_SITE . DS . FSS_Settings::get('attach_location') . "</li>"; echo "</ul>"; return; } header("Cache-Control: public, must-revalidate"); header('Cache-Control: pre-check=0, post-check=0, max-age=0'); header("Pragma: no-cache"); header("Expires: 0"); header("Content-Description: File Transfer"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Content-Type: " . $ctype); //header("Content-Length: ".(string)$row['size']); header('Content-Disposition: attachment; filename="' . $filename . '"'); header("Content-Transfer-Encoding: binary\n"); //echo getcwd(). "<br>"; //echo $file; readfile($file); exit; }
static function attachDownload($ticketid, $fileid, $for_user = false) { $ticket = new SupportTicket(); if ($ticket->load($ticketid, $for_user)) { $attach = $ticket->getAttach($fileid); if (substr($attach->diskfile, 0, 7) == "http://" || substr($attach->diskfile, 0, 8) == "https://") { header('Location: ' . $attach->diskfile); exit; } $file = JPATH_SITE . DS . FSS_Settings::get('attach_location') . DS . "support" . DS . $attach->diskfile; $display_filename = FSS_Helper::basename($attach->filename); if (!$for_user) { $user = JFactory::GetUser($attach->user_id); $type = FSS_Settings::get('support_filename'); switch ($type) { case 1: $display_filename = $user->username . "_" . $display_filename; break; case 2: $display_filename = $user->username . "_" . date("Y-m-d") . "_" . $display_filename; break; case 3: $display_filename = date("Y-m-d") . "_" . $user->username . "_" . $display_filename; break; case 4: $display_filename = date("Y-m-d") . "_" . $display_filename; break; } } require_once JPATH_SITE . DS . 'components' . DS . 'com_fss' . DS . 'helper' . DS . 'files.php'; FSS_File_Helper::DownloadFile($file, $display_filename); } exit; }