私はasp.net MVCとSQLサーバーを使用しています。ユーザーから名前、価格などの情報を取得するページを作成し、1 つの画像も 30 回繰り返します。これは、ユーザーが会社に送信するたびに、すべての情報がデータベースに保存され、フィールドが明確になり、ユーザーは次の情報を送信する必要があることを意味します。今私は、そのユーザーがフォームを送信するたびに、ページの横に以前にアップロードされた画像を表示したいと考えています。しかし、アップロードした画像を表示する方法がわかりません。また、以前の画像をすべて表示する方法を知りたいです。私を助けて、いくつかのコードを見せてください! どうもありがとう。
3 に答える
イメージをイメージ データ型として SQL に格納する場合、カスタム http ハンドラを使用してページにイメージを表示します。私は似たようなものを使用しています
public class ImageHandler : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
string imageid = context.Request.QueryString["ImID"];
using (DataContext data = new DataContext())
{
var image = data.Products.Where(p => p.ID.ToString() == imageid).Select(p => p.Image).Single();
context.Response.BinaryWrite((byte[])image.ToArray());
context.Response.End();
}
}
}
画像を表示するには、画像の URL を次のように設定します。
ImageHandler.ashx?ImID={Id of the database entry}
chead23 さんの答えは、画像の部分は完璧です。mvc コントローラーから実行する場合は、次の質問をご覧ください: Write binary data as a response in an ASP.NET MVC Web Control
Freyday からの回答で cheads23 の回答が完成します。
フォームの設定方法は非常に面倒で実用的ではありません。Flickrの画像アップロード/編集機能のようなものを実装することをお勧めします。
たとえば、SHIFT
/CTRL
キーを使用して複数の画像を選択できる 1 つの入力ボックスを用意し、それらをアップロードします。次のページでは、すべての画像がサムネイルとして表示されます。名前/価格を設定するには、ユーザーが [編集] をクリックすると、2 つのフィールドに [送信] ボタンが表示され、非同期で変更を送信できます。
または、各写真の下に 2 つのフォームを配置し、送信ボタンを 1 つ配置することもできます。
PS まず、私たちがあなたを助ける前に、あなたが試みたことを私たちに示す必要があります.