- - PR -
ファイルアップロード時にファイルの種類を画像のみに限定する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-30 09:56
.NET Framework1.1
ASP.NET(VB.NET) Windows XP Pro 現在HttpPostedFileを使って、ユーザーに画像アップロードを行わせようと考えています。 この際に、アップロードするファイルをjpg、gif、pngに限定したいと思っています。
上記の様なコードを記載したのですが、PNGには"image/x-png"というMIMETYPEがあるのを知りました。 この判定方法だと、GIF、JPG、PNGのファイルに他にもMIMETYPEが存在した場合にアップロードができない場合が発生してしまいます。 何か、他に良い方法はありませんでしょうか? よろしくお願いします。 [ メッセージ編集済み 編集者: toiry 編集日時 2007-01-30 13:30 ] | ||||
|
投稿日時: 2007-01-30 10:38
こんにちは。
私はこちらで紹介されている方法を使いましたよ〜。 http://www.atmarkit.co.jp/fdotnet/dotnettips/022getformat/getformat.html http://www.atmarkit.co.jp/fdotnet/dotnettips/018loadbmp/loadbmp.html | ||||
|
投稿日時: 2007-01-30 10:50
アップロードの際にクライアントから送信されてくる Content-Typeは、
あまり信頼性はありません。 たいていのクライアントは、アップロードするファイルの拡張子を元に 設定しているだけですので、zipファイルを、.jpg にリネームしてあれば、 image/jpg としてアップロードされてくることもあります。 また、Content-Type ヘッダ自体を偽装することは可能です。 なので、しょくぱんさんが紹介されたように、アップロードされたデータ をバイナリレベルで解析して画像ファイルかどうか判定した方が確実かも 知れませんね。 なお、image/x-png の x- は IANA に登録されていない、ユーザが勝手に 拡張したものであることを意味しています。 | ||||
|
投稿日時: 2007-01-30 13:29
>しょくぱん さん
有益なリンクを教えていただき、ありがとうございます。 >Tasuku さん Content-Typeは信頼性がないのですね。。。偽装もできるとは。 そこで、しょくぱんさんに教えていただいた方法で記載してみました。
上記の様にしてみました。 手持ちの画像データでは思ったとおりに判断していますので、問題ないかと。 imgDecode.FormatDescriptionを文字列と比較と言う所が気になりますが。 しょくぱんさん、Tasukuさんありがとうございます。 [ メッセージ編集済み 編集者: toiry 編集日時 2007-01-30 13:29 ] |
1