Вывод EPS через PHP
Хорошо, вот проблема. Мне нужно отобразить список изображений, которые могут быть разных типов. Системные администраторы решили сохранить все эти изображения за пределами корневого каталога в целях безопасности. Я использую забавную хитрость php для получения своих изображений, но я не могу отобразить файлы eps, и у моих tiff есть проблемы, но я больше сконцентрирован на EPS. О, кстати, мы используем MVC, поэтому URL - это то, как мы вызываем функции и передаем параметры.
Вот как я отображаю изображения через цикл путей к изображениям из базы данных.
foreach($paths as $path){
// $path = '/0/path/1/to/2/image/3/filename.eps'
<img src="/path/to/script/0/path/1/to/2/image/3/filename.eps" />
}
В этом сценарии я делаю следующее:
$count = 0;
// BUILD SRC PATH FROM PASSED ARGUMENTS
while($this->_getParam($count) && $count < 30 ){
$path[] = urldecode($this->_getParam($count));
$count++;
}
$path = '/'.urldecode(implode('/',$path));
$srcESC = escapeshellarg($path);
$mime = exec('file -bi '.$srcESC);
if (!file_exists($path)) return;
switch($mime){
case 'image/x-MS-bmp':
header('Content-Type: image/x-ms-bmp');
break;
case 'application/postscript':
header('Content-Type: application/postscript');
break;
case 'image/gif':
header('Content-Type: image/gif');
break;
case 'image/x-ico':
header('Content-Type: image/x-icon');
break;
case 'image/jpeg':
header('Content-Type: image/jpeg');
break;
case 'application/pdf':
header('Content-Type: application/pdf');
break;
case 'image/png':
header('Content-Type: image/x-png');
break;
case 'image/svg+xml':
case 'image/svg-xml':
header('Content-Type: image/svg+xml');
break;
case 'image/x-tiff':
case 'image/tiff':
header('Content-Type: image/tiff');
break;
case 'image/x-photoshop':
case 'application/x-quark-xpress-3':
case 'application/pdf':
case 'application/octet_stream':
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-type: application/octet');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
break;
}
readfile($path);
EPS должен использовать application/postscript Content_Type, и это то, что мои заголовки возвращают с помощью Chrome Inspect, но это просто не потянет визуальный элемент для файла.
Есть идеи?