我使用Uploadify和Kohana,我正在创建文件上传器。用户只能上传几种类型的文件。MIME,八位字节流和Uploadify
Kohana有很多内置的MIME类型库。我认为,检查MIME类型的上传文件(它来自Uploadify)与设置的文件扩展名匹配会很酷。这就是为什么我制作了一系列允许的MIME类型。
$mimes = (array) Kohana::config('mimes');
$allowed_mimes = array_merge($mimes['bmp'], $mimes['gif'], $mimes['jpg'], $mimes['jpeg'], $mimes['png']);
接下来,我想检查上传的文件的MIME类型是$allowed_mimes
阵列。我使用了类似in_array($file['type'], $allowed_mimes)
的东西。让我意外的是 - 文件的实际MIME是application/octet-stream
。无论如何,上传的文件是JPEG
图像。这怎么可能?
基本思路是我需要检查文件类型。什么是最好的方式来做到这一点?
编辑:
一些转换与我的同事后,我决定最后一个点后检查字符。像virus.jpeg
是可以接受的,因为jpeg
就是它的名字。我仍然开放更好的解决方案!
$extension = ltrim(strrchr($file['name'], '.'), '.')
'$ ext = pathinfo($ filename,PATHINFO_EXTENSION);'会得到扩展名的正确方法(我无法理解原始问题?) – Kemo
问题是:如何检查文件类型? MIME好吗? 'application/octet-stream'到底是什么,以及我如何获得'JPEG'?我的解决方案(请参阅编辑)好吗? – daGrevis