我试图在移动文件之前检查上传文件的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
无法读取文件吗?
答案 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类型?
很抱歉,如果这不能回答你的问题。