Exemple #1
0
 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;
 }
Exemple #2
0
$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){