mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 17:44:56 +00:00
add SeedDMS_Preview_Base::sendfile() which uses xsendfile if available
This commit is contained in:
parent
bcef2d3d63
commit
a28d121610
|
@ -129,5 +129,24 @@ class SeedDMS_Preview_Base {
|
|||
return array_key_exists($mimetype, $this->converters) && $this->converters[$mimetype];
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Send a file from disk to the browser
|
||||
*
|
||||
* This function uses either readfile() or the xѕendfile apache module if
|
||||
* it is installed.
|
||||
*
|
||||
* @param string $filename
|
||||
*/
|
||||
protected function sendFile($filename) { /* {{{ */
|
||||
if(function_exists('apache_get_modules') && in_array('mod_xsendfile',apache_get_modules())) {
|
||||
header("X-Sendfile: ".$filename);
|
||||
} else {
|
||||
/* Make sure output buffering is off */
|
||||
if (ob_get_level()) {
|
||||
ob_end_clean();
|
||||
}
|
||||
readfile($filename);
|
||||
}
|
||||
} /* }}} */
|
||||
}
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$target = $this->previewDir.$dir.md5($infile);
|
||||
if($target && file_exists($target.'.pdf')) {
|
||||
readfile($target.'.pdf');
|
||||
$this->sendFile($target.'.pdf');
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
|
@ -215,7 +215,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$target = $this->getFileName($object);
|
||||
if($target && file_exists($target.'.pdf')) {
|
||||
readfile($target.'.pdf');
|
||||
$this->sendFile($target.'.pdf');
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$target = $this->previewDir.$dir.md5($infile).'-'.$width;
|
||||
if($target && file_exists($target.'.png')) {
|
||||
readfile($target.'.png');
|
||||
$this->sendFile($target.'.png');
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
|
@ -271,7 +271,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$target = $this->getFileName($object, $width);
|
||||
if($target && file_exists($target.'.png')) {
|
||||
readfile($target.'.png');
|
||||
$this->sendFile($target.'.png');
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user