MIME 类型的吉他专业文件?

Posted

技术标签:

【中文标题】MIME 类型的吉他专业文件?【英文标题】:MIME type of guitar pro files? 【发布时间】:2012-02-08 04:17:52 【问题描述】:

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

【问题讨论】:

每个文件上肯定有一个特定的标题可以检查吗?使用十六进制编辑器检查其中的几个。 读入标题字符串并测试它是否匹配(这里最好使用正则表达式)。如果没有约定的 MIME 类型,则不能针对它进行测试。 (这些对于上传也不可靠)。如果您想为您的下载提供有用的东西,请设置类型audio/x-guitar-pro 或其他东西,而不是无用的application/* 【参考方案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 文件。我也曾经检查文件扩展名。 但是请记住,您无法执行真正的检查来过滤恶意上传,因为伪造第一个字节以及扩展名非常容易。所以应该对所有上传的文件进行一些额外的审核。

【讨论】:

【参考方案2】:

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

http://dguitar.sourceforge.net/GP4format.html

【讨论】:

谢谢,我对php很陌生,我该怎么做?而且这只是gp4文件,其他版本有同样的吗?

以上是关于MIME 类型的吉他专业文件?的主要内容,如果未能解决你的问题,请参考以下文章

好店 100|我发现了 Taylor Swift 同款……

安卓版的guitar pro吉他谱文件放在哪

吉他软件Guitar Pro入门

推荐一个好用的吉他自学软件

guitar pro音色怎么更逼真、完善?

制作高清的吉他谱用啥软件