【发布时间】:2013-11-11 13:15:23
【问题描述】:
我有一个可以上传文件的 PHP 网站,我希望能够根据文件类型执行某些操作。但是我不想相信浏览器说它是什么类型的文件,而宁愿阅读文件的标题来确定它。 PHP中是否存在为此的任何库?或者这是我需要从头开始写的东西?
【问题讨论】:
标签: php
我有一个可以上传文件的 PHP 网站,我希望能够根据文件类型执行某些操作。但是我不想相信浏览器说它是什么类型的文件,而宁愿阅读文件的标题来确定它。 PHP中是否存在为此的任何库?或者这是我需要从头开始写的东西?
【问题讨论】:
标签: php
PHP 中有一个名为fread() 的函数,您可以使用它来读取二进制文件:
http://php.net/manual/en/function.fread.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
【讨论】:
curl_getinfo 应该可以帮助http://php.net/curl_getinfo 与此问题相关:Get mime type of external file using cURL and php
【讨论】: