2016-10-28 12 views
0

私はクライアントにアクセスしてもらえないものを望んでいるユーバーの編集者です。彼は非常にトリミングされたPHPのバージョンを持っています。それは私が彼がファイルをアップロードするためにやりたがっているスクリプトを持っているという。mime_content_typeまたはfinfo_openなしでmimeタイプを取得

ファイルが必要なものであることを保証するために、いくつかの健全性チェックを行いたいと思います。だから私が使用できる特別な方法があるかどうかは、mime_content_typeまたはfinfo_openではなく、どちらかのサポートライブラリに固有のものではないかと思います。彼のPHPバージョンは5.6.x

+0

私はあなたの唯一の選択肢は、ファイル拡張子のwhileリストを生成することになると思います。ファイルがイメージかpdfか何かを確認するためにチェックしていますか? – Jaime

+0

ファイル拡張子を必ずしも=コンテンツタイプとは限りません。ほとんどの場合、その最高の推測です。 – Matt1776

+0

許可したい有効なコンテンツタイプのリストがありますか? – Dekel

答えて

1

PHPドキュメントページのコメントから、thisが推奨されました。私はそれが、この場合にはLinux上で実行されるだろうと仮定します。

<?php 
function detectFileMimeType($filename='') 
{ 
    $filename = escapeshellcmd($filename); 
    $command = "file -b --mime-type -m /usr/share/misc/magic {$filename}"; 

    $mimeType = shell_exec($command); 

    return trim($mimeType); 
} 
?> 

これはまた、彼はあなたがはshell_execへのアクセス与えている前提としています。あなたの質問をもっと慎重に読んだので、これは起こりそうもないようです。 This投稿でも、これらの方法の利点なしに必要なものを達成するための同様の方法について説明しています。

+0

いいですよね、そういう言い方にはならないと思いました。そして、これはそのメモにも同様にボーナスを働かせました。感謝します! – chris

+0

問題ありません。私はそれが少し奇妙な彼はPHPをロックすると思うが、shell_execまたはシステムコールを利用可能なままにします。 )あなたはあなたの問題をどのように解決したのかを彼に知らせないでしょう; – Matt1776

+0

@chris、あなたは 'mime_content_type'を使うことは許されませんが、' shell_exec'関数を使うことが許されますか? – Dekel

関連する問題