4

ASP.net MVC 3アプリケーションがあり、画像をバイトとしてモデルに格納し、モデルからhtml画像タグのsrc属性にロードします。

例えば

//Property in Model
 public byte[] Image { get; set; }

しかし、これを試してみると、エラーが発生します。

<img src = "@Model.Image" alt=""/>

バイトから画像をロードするにはどうすればよいですか?画像をFileResultとして取得するためにコントローラーを再度呼び出すことは避けたいです。

出来ますか?

4

2 に答える 2

8

最も簡単な方法は次のようなものです。

<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.Image)" alt=""/>

これはPNGペイロードを想定しており、レガシーブラウザではあまりサポートされていません。

実際には、ディスクに保存して、Webサーバーに個別にホストさせることをお勧めします。

于 2012-09-05T23:12:33.587 に答える
2

画像をbase64でエンコードされた文字列として直接埋め込むことができます。

例:

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/
/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp
V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" 
width="16" height="14" alt="embedded folder icon">

Internet Explorer8ではデータのサイズは32KiBに制限されています。さらに、base64では33%のオーバーヘッドが発生します。

詳細情報: http: //en.wikipedia.org/wiki/Data_URI_scheme

于 2012-09-05T23:13:06.387 に答える