image/pjpeg とは?

ま、当然、progressive JPEG のことなんでしょうが・・・

ファイルアップロードのある CGI の話。
画像ファイル以外のアップは駄目だということで、FORM データの Content-Type を見て、

image/jpeg
image/gif
image/png

の、3つ以外はエラーにしてたんだけど、InternetExplorer7 から JPEG 画像をアップすると必ずエラーになる。
FireFox3 から同じ画像を上げたら問題ないのに。

で、FORM データの中身を見ると、IE7 は JPEG の Content-Type を image/pjpeg で上げてきてますよ・・・
どうも、2005年頃から問題になっているようで、RFC への記載も無いお得意の「Microsoft の独自実装」ってヤツみたいですね。

なんでもかんでも JPEG ファイルなら(baseline JPEG でも)image/pjpeg をセットしているみたいなので、わざわざ pjpeg にしている意味がまったくない。百害あって一利無し。なのに、なんで Micorosoft はこういうことをするんでしょうか?
Microsoft 信者は、なぜ Microsoft がこんな訳のわからんことをしているのかちゃんと説明しなさい。でないと、Microsoft 信者というだけで、あんたたちが馬鹿者扱いされるのも致し方ないことですぞ。

ちなみに、Windows2000 の InternetExplorer6 SP1 でも image/pjpeg をセットします。
(そういえば、Outlook 等、メールの添付ファイルではちゃんと image/jpeg を使っていたはずです。ま、InternetExplorer の開発チームが馬鹿だった・・・ということなんでしょう)

Microsoft が巨大企業なので、多くの「素人さん(IT業界の中にも、Microsoft 信者という形で存在します)」は Microsoft を「高い技術力を持った会社」と誤解しています。確かに限られた部分では、高い技術力を持っていると思いますが、例えばわしらのように The Internet の世界を商売ネタにしている技術者からすると「Microsoft はメジャー企業の中では最低の技術力の会社」にしか見えませんな。

よく、Microsoft は RFC を無視した独自実装を導入して、周りから「シェアにものを言わせた横暴な行為」と非難されてますが、俺に言わせれば、確かに半分は「わかってて無視した結果」なんでしょうが、残り半分は単に「技術的理解力不足による過った実装」でしかないと思うね。
今回の image/pjpeg もそうでしょう?まったく意味をなしてないんだから。
なんか、Microsoft としては狙いがあったんだろうけど、結局まったく意味がなかった。つまり、完全に技術者の「理解力不足」からくるバグだったってわけ。

面倒くさいことに、IE ファミリーのためだけに、ファイルタイプをチェックするのが、

$type eq 'image/jpeg'

ではなく、

$type =~ /image\/p*?jpeg/

と書かなくちゃいけなくなっちゃう。
正規表現がわからないプログラマだと、

$type eq 'image/jpeg' || $type eq 'image/pjpeg'

のような不細工なコードになっちゃう。

Microsoft が「理解不足」からやっちゃった過った実装は、こうして広く、プログラマに迷惑をかけるのであります。

<追記>
Windows の FireFox 3.0.8 も、Mac OS-X の Safari 3.1.1 も、JPEG 画像の Content-Type は image/jpeg をセットします。
image/pjpeg をセットする狂ったブラウザは、IE ファミリーだけでありましょう。

Clip to Evernote

トラックバック(2)

このブログ記事を参照しているブログ一覧: image/pjpeg とは?

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/515

FirefoxやGoogle Chromeでは問題ないのに、Internet Explorerからだと画像をアップロードできないという問題が発生しました。... 続きを読む

WEBプログラマなら一度は嵌まるIE問題らしいですが、画像Upload時に「image/pjpeg」と言うファイルタイプに悩まされました。 (参照)電気ウ... 続きを読む

コメント(1)

--
> $type =~ /image\/p*?jpeg/

$type =~ |image/p?jpeg|
--

この方がよろしいのではないかと。

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、shinodaが2009年4月 8日 19:29に書いたブログ記事です。

ひとつ前のブログ記事は「岩国のネットカフェでお泊まり」です。

次のブログ記事は「ああ、春の味を満喫しましたよ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら