Iss*_*lly 48 php filesystems content-type http-headers
好的,所以我有一个index.php文件,它必须处理许多不同的文件类型.我怎么猜测基于的文件类型REQUEST_URI.
如果我请求http://site/image.jpg,并且所有请求都通过index.php重定向,这看起来像这样
<?php
include('/www/site'.$_SERVER['REQUEST_URI']);
?>
Run Code Online (Sandbox Code Playgroud)
我该如何正确地完成这项工作?
我应该根据所请求文件的扩展名进行测试,还是有办法获取文件类型?
lee*_*eek 49
如果您确定自己只使用过图像,可以查看 和getimagesize() exif_imagetype() PHP函数,它试图返回图像的mime-type.
如果您不介意外部依赖项,您还可以查看优秀的getID3库,它可以确定许多不同文件类型的mime类型.
最后,您可以查看mime_content_type()函数 - 但不推荐使用Fileinfo PECL扩展.
Eri*_*VGG 22
不推荐使用mime_content_type(),因此将来无法依赖它.有一个"fileinfo"PECL扩展,但我没有听到有关它的好消息.
如果您在*nix服务器上运行,则可以执行以下操作,这对我来说很好:
$file = escapeshellarg( $filename );
$mime = shell_exec("file -bi " . $file);
$filename should probably include the absolute path.
Run Code Online (Sandbox Code Playgroud)
Ale*_*Ale 18
function get_mime($file) {
if (function_exists("finfo_file")) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$mime = finfo_file($finfo, $file);
finfo_close($finfo);
return $mime;
} else if (function_exists("mime_content_type")) {
return mime_content_type($file);
} else if (!stristr(ini_get("disable_functions"), "shell_exec")) {
// http://stackoverflow.com/a/134930/1593459
$file = escapeshellarg($file);
$mime = shell_exec("file -bi " . $file);
return $mime;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这没有任何作用 - mime_content_type已弃用,finfo未安装,shell_exec不允许.
Sha*_*ane 10
我实际上厌倦了PHP中缺乏标准的 MIME嗅探方法.安装fileinfo ...使用已弃用的功能......哦,这些工作,但仅适用于图像!我厌倦了它,所以我做了一些研究,发现了WHATWG Mimesniffing规范 - 我相信这仍然是草案规范.
无论如何,使用这个规范,我能够在PHP中实现mimesniffer.性能不是问题.事实上,在我不起眼的机器上,我能够在PHP超时之前打开并嗅探数千个文件.
这是MimeReader类.
require_once("MimeReader.php");
$mime = new MimeReader(<YOUR FILE PATH>);
$mime_type_string = $mime->getType(); // "image/jpeg" etc.
Run Code Online (Sandbox Code Playgroud)
如果您只使用图像并且您需要mime类型(例如标题),那么这是最快且最直接的答案:
$file = 'path/to/image.jpg';
$image_mime = image_type_to_mime_type(exif_imagetype($file));
Run Code Online (Sandbox Code Playgroud)
即使重命名图像文件,它也会输出真实的图像mime类型
| 归档时间: |
|
| 查看次数: |
109189 次 |
| 最近记录: |