2011-08-03 4 views
0

これは、ここで何度か尋ねられた質問のバリエーションです。一例:Display an image contained in a byte[] with ASP.Net MVC3。問題は、バイト配列からイメージをレンダリングする方法です。これに似たイメージタグ付きASP.NET MVC3のDBにないbyte []からの画像をレンダリングする

public FileContentResult Display(string id) { 
byte[] byteArray = GetImageFromDB(id); 
return new FileContentResult(byteArray, "image/jpeg"); 
} 

::これは

<img src="@Url.Action("Display", new { id = Model.Id })" /> 

すべてのこれらの質問に

は、私は上記のリンクで回答の一つと同様の作用がありますこれは、GETリクエストを通じてバイト配列を送ることができないために行われるため、idだけが送信され、Actionメソッドのルックアップが可能になります。私はこの部分を得ます、それは問題ではありません。私がしようとしているのは、データベースに保存する前に作業を確認できる「プレビュー」ページを作成することです。彼らは、タイトル、テキスト、イメージのレイアウトを見て、保存するか、戻るか、編集するかを決めることができます。したがって、オブジェクトがまだデータベースに保存されていないため、 'GetImageFromDB(id)'部分は機能しません。

これを達成する方法はありますか?または、データベースに一時的にバイト配列を保存して、プレビューページにアクセスするだけですか?

答えて

1

アップロードしたファイルを後でプレビューまたはフルサイズの画像として表示するには、サーバーのどこかに保存する必要があります。それがデータベースであろうとファイルシステムであろうと、それはあなた次第です。一度ファイルがアップロードされると、それをいくつかの一意のGUidを使用して名前を変更し、このGUidをクライアントに返すことで、サーバー上のある場所に一時ファイルとして保存することができます。一時的な場所からファイルを取得してクライアントにストリームします。

+0

ありがとうございます。はい、私は最初に保存しなければならないと考えましたが、ファイルを一時フォルダにアップロードした後、後でデータベースにアップロードすることについては考えていませんでした。ありがとう。 – adimauro

関連する問題