public function download($document_id) { require_once 'HTTP/Download.php'; PHPWS_Core::initModClass('filecabinet', 'Document.php'); $document = new PHPWS_Document($document_id); if (empty($document->id)) { $message = 'Document id:' . $document_id; if (!empty($_SERVER['HTTP_REFERER'])) { $message .= ' request from ' . $_SERVER['HTTP_REFERER']; } PHPWS_Error::log(FC_DOCUMENT_NOT_FOUND, 'filecabinet', 'Cabinet_Action::download', $message); Error::errorPage('404'); } $folder = new Folder($document->folder_id); if (!$folder->allow()) { $content = dgettext('filecabinet', 'Sorry, the file you requested is off limits.'); Layout::add($content); return; } $file_path = $document->getPath(); if (!is_file($file_path)) { $message = $file_path; if (!empty($_SERVER['HTTP_REFERER'])) { $message .= ' request from ' . $_SERVER['HTTP_REFERER']; } PHPWS_Error::log(FC_DOCUMENT_NOT_FOUND, 'filecabinet', 'Cabinet_Action::download', $message); Error::errorPage('404'); } $file_name = preg_replace('/[^\\w]/', '-', $document->getTitle()); $file_name = preg_replace('/-{2,}/', '-', $file_name); $file_name = preg_replace('/-$/', '', $file_name); $file_name .= '.' . $document->getExtension(); $document->downloaded++; $document->save(); $dl = new HTTP_Download(); $dl->setFile($file_path); $dl->setCache(true); $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $file_name); $dl->setContentType($document->file_type); $dl->send(); exit; }
$saved_filename = rawurldecode($org_filename); $ua = $_SERVER['HTTP_USER_AGENT']; if(strstr($ua, "MSIE") && !strstr($ua, 'Opera')){ $saved_filename = mb_convert_encoding($saved_filename, 'SJIS', 'EUC-JP'); } else{ $saved_filename = mb_convert_encoding($saved_filename, 'UTF-8', 'EUC-JP'); } ini_set('include_path', XOOPS_TRUST_PATH.'/PEAR'); if(include_once('HTTP/Download.php')){ $download = new HTTP_Download(); $download->setFile($path_file); $download->setCache(false); $download->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $saved_filename); $download->setContentType('application/octet-stream'); $download->send(); } else{ header("Location: ".XOOPS_URL); } exit(); //------------------------------------------------------------------------------ function checkPermission($target, $target_id) { global $xoopsUserIsAdmin; if($xoopsUserIsAdmin){