我有一个接受文件上传的PHP网站,我希望能够根据文件类型执行某些操作。但我不想相信浏览器说的文件类型,而是宁愿阅读文件的标题来确定它。PHP 中是否有任何库?或者这是我需要从头开始写的东西吗?
使用为您执行此操作的finfo
函数。
以前您可以使用 mime_content_type 函数,现在已弃用此功能,因此,取而代之的是使用
$finfo = new finfo(FILEINFO_MIME);
$type = $finfo->file('path/filename');
文件信息功能可以给你文件类型
$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo, $filename);
它可以给出这样的输出
text/html
image/gif
application/vnd.ms-excel
PHP 中有一个名为 fread()
的函数,可用于读取二进制文件:
http://php.net/manual/en/function.fread.php
您可以使用它来读取文件的前几个字节,以获取标头并以这种方式确定文件类型。
>curl_getinfo应该对 http://php.net/curl_getinfo 有所帮助与此问题相关:使用 cURL 和 php 获取外部文件的 MIME 类型