1

如何一次上传许多图像(通过打开对话框和 shift/ctrl)并将它们存储到 sql server 数据库(为每个图像创建记录),然后使用 ASP.Net MVC 创建缩略图?

视图和控制器应该如何?非常感谢。

4

2 回答 2

1

从你的问题来看,你似乎太过分了。您正在同时提出有关 ASP.NET MVC、图像处理算法、SQL 服务器和一般 Web 设计的问题。

为了避免深入了解您的问题,我将简单地解释您需要做什么。您将需要自己对此进行研究,因为再多的 SO 问题和答案都不会为您提供适当的技术知识。

您首先需要有一个可以存储图像的数据库。这是一个小教程http://www.codeproject.com/Articles/354639/Storing-and-Retrieving-Images-from-SQL-Server-Usin

这可能需要你一段时间。但是一旦你完成了,你将需要进入你的项目并开始研究基本架构。你的对象会是什么样子?你的程序的流程是什么?您需要问的一个大问题是您将如何连接到您的数据库?答案可能应该是实体框架。您需要考虑使用 EF 将数据从服务器端代码传输到数据库。

就您的视图和控制器而言,控制器是应用程序中所有计算和处理的地方,而视图几乎就像显示计算数据的模板。您需要确定要来回传递的数据。一般来说,鉴于您提供的信息量很少,视图看起来几乎就像您希望它看起来的样子,并且控制器必须获取从视图传递的图像,将其转换为缩略图,然后传递它(使用 EF)返回到您的数据库。

很多工作,嗯?;)

于 2012-10-27T18:18:05.967 回答
0

您必须创建 2 个类:MainClass 和 MainClassViewModel

主类具有带有标记名的图像属性,例如:

public class MainClass
{
 [Key]
 public int MainClassId {get; set;}
 [DisplayName("Image 1")]
 public Bytes[] Image1 {get;set;}
}

然后您将需要一个 ModelView(这是一种类似于原始的类方式,只需将“Bytes []”的类型更改为“HttpPostedFileBase”:

  public class MainClassModelView
{
 [Key]
 public int MainClassId {get; set;}
 [DisplayName("Image 1")]
 public HttpPostedFileBase Image1 {get;set;}
}

在你看来,你必须在第一行使用这个 ModelView:

 @model ApplicationName.Models.MainClassModelView

然后你必须使用视图:

 @using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
  @Html.AntiForgeryToken()
  <div class="form-horizontal">
     <h4>MainClassView</h4>
     <hr />
       @Html.Images(m => m.Image1)
       @Html.ValidationMessageFor(model => model.Image1, "", new { @class = "text-danger" })
    </div>
</div>

   <div class="form-group">
      <div class="col-md-offset-2 col-md-10">
          <input type="submit" value="Create" class="btn btn-default" />
      </div>
  </div>
</div>
}
于 2015-10-01T01:01:21.230 回答