tejimaya/opTimelinePlugin — pull request #17 by upsilon (2013-11-13 05:42:30+00:00)
Title: Android標準ブラウザから画像投稿を行うと不正なファイルタイプとしてエラーとなる

### Overview (現象)

#4 の修正を行った後の投稿画面で、Android 標準ブラウザから画像投稿を行うと「画像をアップロードしてください」と赤文字でエラーが表示される。

### Causes (原因)

このエラーは activity/post.json のパラメータ `timeline-submit-upload` に画像以外のファイルを含めて送信した場合に表示される。（この activity/post.json は OpenPNE 本体ではなく opTimelinePlugin が独自に上書きしている API が使用されている）
opTimelinePlugin の activity/post.json は PHP の `$_FILES[]['type']` を見てアップロードされたファイルが画像であるか否かを判断しているが、この値は Android の標準ブラウザから送信した場合はファイルの種類に係わらず `application/octet-stream` となるため不正なファイルとしてエラーが返されてしまう。
また、`$_FILES[]['type']` はクライアントから提供される MIME タイプの情報のため本来この値を当てにするのは好ましくない。

### Way to fix (修正内容)

`opValidatorImageFile` などの fileinfo 関数でファイルタイプを判定するクラスを使用して、アップロードされたファイルのバリデーションを行う。