1

アップロード ファイルの種類をチェックするために、以下を実装しました。

$_FILES["file"]["type"][$i] == 'application/pdf'

ただし、このチェックは、拡張子名を変更した場合には機能しません。

だから、いくつかの研究の後、私は試しました

$finfo = new finfo();
$fileMimeType = $finfo->file($_FILES["file"]["name"][$i] );

また:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileMimeType = finfo_file($finfo,$_FILES["file"]["name"][$i])

ただし、$fileMimeType は何もエコーしません。

問題を解決するには?ありがとう

4

3 に答える 3

1

を使用してファイルを読み取る場合はfread、すべてのファイル ヘッダー タイプ定義の辞書が必要です。fileシェルコマンドを使いたい場合

$out = exec("file 'R-intro.pdf' | cut -d: -f2 | cut -d, -f1");
if (trim($out) == "PDF document") {
   echo "1";
}

定数ファイル名をアップロードされたファイルに置き換える方法をさらに詳しく説明するには、以下を参照してください。

$out = exec("file '" . $_FILES['file']['tmp_name'] . "' | cut -d: -f2 | cut -d, -f1");
于 2013-07-19T09:29:59.167 に答える