我正在从 Alfresco 读取 PHP 文件,然后将其输出到浏览器。唯一的问题是 mime 类型或文件的扩展名。这是我正在使用的代码:
<?php
ob_start();
require_once("libs/AlfrescoConnect.php");
$nomeFile = rawurldecode($_GET['nomeFile']);
$urlDownload = $_GET['urlDownload'];
$fileDownloadUrl =
AlfrescoConnect::$serverPath. $urlDownload .
"&attach=true&alf_ticket=".AlfrescoConnect::getTiket();
fb($fileDownloadUrl);
$cnt = file_get_contents($fileDownloadUrl);
header("Content-type: Application/octet-stream");
header('Cache-Control: must-revalidate');
header('Content-disposition: attachment; filename=' .$nomeFile);
echo($cnt);
exit();
echo("Impossibile trovare il file");
我从 get 中收到文件的名称,因为我不知道如何从 alfresco 中获取该名称。但我必须以某种方式猜测模仿类型。如果我echo $cnt
在第一个字符中,引用了它是 PDF 的事实(例如在屏幕上我看到
%PDF-1.3 % 2 0 obj > /类型 /XObject /子类型 /图像 /宽度 2480 /高度 3508 / BitsPerComponent 1 /ColorSpace /DeviceGray >> 流
所以必须有一种方法可以用函数从中获取 mime 类型。
任何帮助表示赞赏!
编辑。如果有人感兴趣,这里有一个类,您可以使用它从 mime 类型获取扩展名。http://www.ustrem.org/en/articles/mime-type-by-extension-en/ http://www.ustrem.org/en/articles/mime-type-by-extension-en/
您可以使用finfo::buffer()
方法:http://php.net/finfo_buffer http://php.net/finfo_buffer.
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($cnt) . PHP_EOL;
NOTE:如果 finfo_buffer 过程函数比使用面向对象的方法更适合您,您可以选择使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)