finfo_file返回空字符串

时间:2014-09-18 07:25:16

标签: php mime-types

我试图在移动文件之前检查上传文件的mime类型,但我无法让finfo_file返回任何内容。

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['imageFile']['tmp_name']);
echo $mime;
// returns NOTHING!

...所以只是在finfo_file中测试是可用的,文件路径是好的:

echo phpversion();
// returns 5.1.28

$finfo = finfo_open(FILEINFO_MIME_TYPE);
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . ', ';
}
// returns text/plain, text/html, image/png, directory, text/x-asm, text/x-php, text/x-php, text/x-php, directory, directory

echo move_uploaded_file($_FILES['imageFile']['tmp_name'], getcwd().'/uploadsTemp/'. uniqid());
// returns 1

可能是finfo_file无法读取文件吗?

3 个答案:

答案 0 :(得分:1)

今天我遇到了同样的问题,这是由于上传的文件大于php.ini中的upload_max_filesize引起的。

我只是在这里注意到它,因为在其他帖子中找不到此解决方案。

答案 1 :(得分:0)

我相信,它 (finfo_file) 不仅返回 MIME 类型,还返回文件内容的文本描述。 Visit.this.page

尝试使用此 $imageinfo['mime']。也许有帮助!

可以有一个建议,但我不确定,为什么必须使用 $_FILES['imageFile']['tmp_name'] 而不是 $_FILES['imageFile']['name']?使用临时文件有那么重要吗?

答案 2 :(得分:-1)

这可能是一个愚蠢的答案,因为可能有很多原因导致您无法使用此...但

你能不能只使用$_FILES["Img"]["type"]并使用它给出的MIME类型?

很抱歉,如果这不能回答你的问题。