通过PHP输出EPS

时间:2013-04-15 19:56:46

标签: php ajax image eps

好的,这是问题所在。我需要显示可以有许多不同类型的图像列表。出于安全原因,系统管理员决定将所有这些图像保留在webroot之外。我正在使用一些有趣的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应该接收应用程序/ postscript Content_Type,这就是我的标题通过chrome检查返回的内容,但它不会拉出文件的视觉效果。

有什么想法吗?

0 个答案:

没有答案