显示上传的图像,并使用ASP.Net MVC显示存储在数据库中的许多图像

时间:2012-10-26 15:47:29

标签: c# asp.net-mvc image-uploading

我正在使用asp.net MVC和sql server。我创建了一个页面,从用户那里获取一些信息,如名称,价格......以及一个图像,页面重复30次。这意味着每次用户提交公司时,所有信息保存到数据库和字段都变得清晰,用户必须提交下一个信息。现在我希望每次用户提交表单时页面都会显示之前上传的图像。但我不知道如何显示上传的图像。而且我想知道如何显示所有以前的图像。请帮帮我,给我看一些代码!非常感谢。

3 个答案:

答案 0 :(得分:3)

如果您将Image中的Image存储为图像数据类型,我将使用自定义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();
        }
    }
}

要显示图像,只需将图像网址设置为

ImageHandler.ashx?ImID={Id of the database entry}

答案 1 :(得分:0)

chead23的答案是图像部分的完美。如果你想用mvc控制器做,请看看这个问题: Write binary data as a response in an ASP.NET MVC web control

Freyday的回答完成了cheads23的回答。

答案 2 :(得分:0)

您设置表单的方式非常繁琐且不实用,我建议您实施类似Flickr的图片上传/编辑功能。

例如,有一个输入框允许使用SHIFT / CTRL键选择多个图像,然后上传这些图像。在下一页上,您将以缩略图的形式显示所有图像,并设置名称/价格,用户可以单击编辑,两个字段将显示一个提交按钮,并以异步方式提交更改。

或者,您可以在每张照片下方放置两个表格,并有一个提交按钮。

P.S。首先,在我们帮助您之前,您需要告诉我们您的尝试。