0

私のウェブサイトで、人々がギターのプロ ファイルをアップロードできるようにしたいと考えています。どうやら、これらには特定の MIME タイプはありません (私がテストしたところ、'application/octet-stream' が得られました)。ファイルがギター プロ ファイルであり、他のファイルではないことを 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番目までの文字を読み取ると、文字列「FICHIERGUITARPRO」が得られます。このアプローチは、gp4ファイルに対してはうまくいきました。また、ファイル拡張子をチェックするために使用しました。ただし、この最初のバイトと拡張機能は非常に簡単であるため、悪意のあるアップロードをフィルタリングするために実行できる実際のチェックはないことに注意してください。したがって、アップロードされたすべてのファイルには常に追加のモデレートが必要です。

于 2012-01-11T20:14:37.320 に答える
0

ファイルを解析して、バージョン文字列が正しいかどうかを確認する必要があります。

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