我读过有关MIME
和finfo()
的内容,但我不明白!
我也试过这些:
if ($_FILES["uploadedFile"]["type"] == "text/docx"/*or == document/docx*/)
echo "1";
显然它不起作用。
当我echo $_FILES['uploadedFile']['type'];
然后我看到这个单词文档(我的服务器是Linux):
application/vnd.openxmlformats-officedocument.wordprocessingml.document
我必须使用:?
if ($_FILES["uploadedFile"]["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
查找文件扩展名(不仅是图片)的简单可靠方法是什么? (我的意思是使用一些未在客户端填充的变量)
答案 0 :(得分:3)
如果你使用的是php 5.3,你可以获得 true mime-type:
$finfo = finfo_open();
$file = $_FILES["uploadedFile"];
finfo_file($finfo, $file, FILEINFO_MIME_TYPE);
finfo_close($finfo);
更多信息:
答案 1 :(得分:2)
怎么样
$file = $_FILES['uploadedFile'['name'];
$pathparts = pathinfo($file);
$ext = $pathparts['extension'];
这将为您提供实际的文件扩展名。
答案 2 :(得分:0)
确定文件类型的最佳方法是检查文件的前几个字节 - 称为“魔术字节”。 Magic字节本质上是签名,文件头中或文件末尾的长度在2到40个字节之间变化。
你最好的选择是PECL扩展名为Fileinfo。
从 PHP 5.3 开始,Fileinfo附带主发行版并默认启用
// in PHP 4 :
$fhandle = finfo_open(FILEINFO_MIME);
$mime_type = finfo_file($fhandle,$file); // e.g. gives for example "image/jpeg" for a jpeg file
// in PHP 5 you can do :
$file_info = new finfo(FILEINFO_MIME); // object oriented approach!
$mime_type = $file_info->buffer(file_get_contents($file));