10年以上前に作ったWEBプログラムの改修の話が出たのでソースを見ていました。
画像のアップロードで必ず画像ファイルで有ることが前提です。
で、アップロードした画像ファイルが何であれファイル名をアップロードした際のファイル名は使用せず、全て「img01.jpg」のような形で保存していました。
要するに拡張子・MIME等を無視してアップロードされた物が正しく画像であること前提で全て拡張子をjpgとして扱っていた感じです。
多分昔の自分が拡張子が何でも画像の拡張子になっていればブラウザは表示してくれるのでそのような事にしたと思いますが(自分のことですが記憶にない・・)これはどうなんでしょうか?
そもそも画像ファイルでないものは表示されようが無いので問題外ですが、画像であることは間違いない場合、拡張子が違ったところでおそらく今のブラウザなら正しく表示してしまうと思います。
もちろんしっかりやるとすればアップロードしたファイルのMIMEを調べて・・とやることがベストなのはわかりますが、表示自体は問題なくされている場合には気にせずとも良いものでしょうか?
マナー以前の問題ではありますがそうなるとそもそもMIMEと拡張子が一致してなくても画像が表示されるのであれば、拡張子はWindowsで簡易でファイルをチェックする以外に何の意味があるのか?って言う部分も気になったのでいろいろ指摘受けるのを前提で質問してみようと思いました。
よろしくお願いいたします。
追記
情報足らずで申し訳なかったのですが同時でもPHP5.3だったようで、アップロード時にfinfoで調べてありました。
みなさんがご指摘くださった通り、そもそも画像ですらないファイルをアップロードされたら話が変わるので、画像だと確定している前提です。
こちらの管理の仕方ではありますが画像ですとそもそもが形式がいろいろあります。
そこで当時の自分はきっちりファイルの拡張子毎に変更していると処理が増えて面倒なので、アップロードした際のファイル名(拡張子というか)は無視して画像だから全部「.jpg」にしよう・・という事を思ってたみたいだったので、全て同じ拡張子で扱っても表示されないとかは無いのですが、それってどうでしょうか?というのが本来の質問でした。
もちろん何の拡張子だろうがファイルの実体情報?(MIME含めて)がファイルの先頭側にあるのも理解しています。
昔のプログラムを見てて拡張子を決め打ちしてるな・・・これってなんでこうしたのかな?って自分が何を考えてたのかを追っかけてた時に思った話です。


回答4件
あなたの回答
tips
プレビュー