0

在我的网站上,我想让人们上传吉他专业文件。显然这些没有特定的 MIME 类型(我测试过,它给了我“应用程序/八位字节流”)。有没有办法检查并 100% 确定文件是吉他专业文件而不是其他文件?谢谢

4

2 回答 2

1

从上传的文件中读取第一个字节。例如,这就是我在创建类似功能时检查上传文件的方式。

$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);

if ($in == 'FICHIER GUITAR PRO') { ... }

因此,从第 1 到第 19 读取字符会给我字符串“FICHIER GUITAR PRO”。这种方法对我来说适用于 gp4 文件。我也曾经检查文件扩展名。但是请记住,您无法执行真正的检查来过滤恶意上传,因为伪造第一个字节和扩展名非常容易。所以应该总是对所有上传的文件进行一些额外的审核。

于 2012-01-11T20:14:37.320 回答
0

您应该解析文件并查看版本字符串是否正确:

http://dguitar.sourceforge.net/GP4format.html
于 2012-01-11T19:40:09.620 回答