[ASP.NET MVC] 画像を返す(ファイルを返す)

プロ生ちゃんダミー画像生成サービス など画像を生成するジェネレーター系などのサービスで、コントローラーで画像を返す方法です。画像以外にも応用できます。

サーバーにある画像ファイルを返す

FileStreamResult を使って MemoryStream の内容を返します。

個の例では、 /Image にアクセスすると App_Data/images/sample.png の内容をそのまま返します。ジェネレーター系は、生成した Bitmap や加工をした Bitmap を返せば OK ですね。

他サイトからのアクセスを拒否する

自サイトでのみ利用する API 的なものであれば、気休め程度ですが Referrer が自サイトでない場合は、拒否するといったこともできます。

Web から読み込んだデータをそのまま返す

指定した URL から読み込んだデータをそのまま返す例です。この場合、Response.OutputStream に直接、リクエストのレスポンス結果を指定しています。

このような処理は、HTML5 の Canvas に Web から読み取った画像を描画して、さらに保存する場合など、セキュリティ例外を回避するために必要だったりします。timg: Twitter 画像検索・画像一覧 & まとめてダウンロード で利用しています。