1

ファイルを受け入れる前に、実際のファイルがファイル拡張子と一致していることを確認したいと思います。そうするために、私は次のことをします:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime=finfo_file($finfo, $filename);
$ext=getExtFromMime($mime); //Simple switch lookup table
if($ext==pathinfo($filename, PATHINFO_EXTENSION)) {//File is okay}
else {//file is bad}

Microsoftファイルに関連する私の問題以外に、このアプローチに問題がありますか?

PHP finfo_file()は、MS Word 2007、Excel 2007、およびPowerPoint2007ファイルに同じmime「application/zip」タイプを提供するために使用されます。次に、PHP>=5.3.11および>=5.4.1は、返されるmimeタイプを「application/zip」から2003mimesに変更しました。

  • アプリケーション/msword
  • application /vnd.ms-excel
  • application / vnd.ms-powerpoint)。

ただし、これら3つのファイルタイプの正しいmimeタイプは、次のとおりです。

  • application / vnd.openxmlformats-officedocument.wordprocessingml.document
  • application / vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application / vnd.openxmlformats-officedocument.presentationml.presentation

2007ファイルの正しいmimeタイプを取得して、ファイルタイプと一致することを確認するにはどうすればよいですか?

4

0 に答える 0