php - 使用/usr/bin/file判断文件类型?

标签 php linux file file-upload identification

我打算使用这个系统程序/usr/bin/file 来确定上传的文件内容类型,然后采取相应的操作。

这是一个好主意还是有什么我应该注意的事情? (或者使用完全不同的东西)

最佳答案

mime_content_typefinfo_file是确定 mime 类型的首选方法(大多数 php 发行版中通常启用其中一种方法)。它们使用与外部工具相同的 magic.mime 数据库,这就是为什么我仅将其用作后备。

使用外部工具还需要从输出中提取 mime 类型,因此有点涉及代码:

$type = exec("/usr/bin/file -iL " .escapeshellcmd($fn). " 2>/dev/null");
if ($type = trim(strtok(substr(strrchr($type, ":"), 1), ";"))) {
    return $type;
}

如果您的问题是关于可靠性:是的,这是一个很好的方法。在所有当前的 Linux/U*ix 服务器上,通过 magic bytes 确定文件类型是相当可靠的。

关于php - 使用/usr/bin/file判断文件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370483/

相关文章:

php - 在 Wordpress 上显示查询自定义表

php - 获取DIV的内容并保存到文件,jQuery/JS或服务器端

php - 是否可以用另一个包含覆盖一个页面?

java - linux 64bit - jni 链接错误

linux - Bash linux,JPG 图像的小时、分钟和秒

java - hadoop 无法分配内存 java.io.IOException : error=12

javascript - 关于 Linux 上 Javascript 中的文件处理

C正在将字符串转换为十六进制

php - APC不缓存文件,但缓存用户数据

php - 如何显示每篇文章的所有评论(PHP 和 SQL)?