私は小さなイメージアップローダーフォームを作成していますが、何も気にしません。アップロード許される唯一のJPGファイルです - これはこれで、PHPスクリプトによってチェックされます。php:jpeg mime type - Photoshopで検出されないjpegs with quality 12
$filesize = getimagesize($targetFile);
if($filesize['mime'] != 'image/jpeg') { ... }
最もJPGファイルに予想されるように、これは動作しますが、私は拒否されるいくつかのに遭遇しました。私はこのサイトでこれらの画像を確認しました:http://mime.ritey.com/ そして、ちょうど"image/jpeg"
の代わりに"Unknown MIME type"
を返していることがわかりました。
私はそれがPhotoshopと品質設定12で保存されていることを発見しました(「ウェブ用に保存」ダイアログではなく、通常の保存ダイアログ)。
この画像を品質11以下で保存した場合、「画像/ jpeg」として認識されます。次に、品質11の画像をもう一度保存してレベル12で保存しても、もう動作しません。
品質レベル12は正式にはjpgで指定されていませんが、Adobeによって発明されたものです。だから私はこれが問題を引き起こすかもしれないと思う。
まだ、それらのjpgがあるので、正当なjpegファイルとしてphpでそれらを識別する方法はありますか?この味のためにいくつかの他のMIMEタイプがありますか?または、ファイル名の接尾辞を除いてjpegsであることを確認する他の方法(私の場合は十分に信頼性がありません)。
をあなたは品質12で画像をアップロードして、MIMEタイプが – FMashiro
エコーパントマイムであるかを確認するために '$のファイルサイズ[「MIMEを」]'エコーでしたタイプが "Unknown MIME type"であることを確認してください (この品質-12 jpegについては、すべての品質-11またはそれ以下のjpegについては「image/jpeg」です) – kapitel4
それから私はあなたが正式にサポートできないと思いますそれらのイメージは、イメージが標準に準拠していない場合、それらを正しく処理することが期待できません。私があなたの場合は、ユーザーにエラーメッセージを表示し、原因を考えてみましょう.1つは任意のレベル12の品質です。 – FMashiro