如何一次上传许多图像(通过打开对话框和 shift/ctrl)并将它们存储到 sql server 数据库(为每个图像创建记录),然后使用 ASP.Net MVC 创建缩略图?
视图和控制器应该如何?非常感谢。
如何一次上传许多图像(通过打开对话框和 shift/ctrl)并将它们存储到 sql server 数据库(为每个图像创建记录),然后使用 ASP.Net MVC 创建缩略图?
视图和控制器应该如何?非常感谢。
从你的问题来看,你似乎太过分了。您正在同时提出有关 ASP.NET MVC、图像处理算法、SQL 服务器和一般 Web 设计的问题。
为了避免深入了解您的问题,我将简单地解释您需要做什么。您将需要自己对此进行研究,因为再多的 SO 问题和答案都不会为您提供适当的技术知识。
您首先需要有一个可以存储图像的数据库。这是一个小教程http://www.codeproject.com/Articles/354639/Storing-and-Retrieving-Images-from-SQL-Server-Usin。
这可能需要你一段时间。但是一旦你完成了,你将需要进入你的项目并开始研究基本架构。你的对象会是什么样子?你的程序的流程是什么?您需要问的一个大问题是您将如何连接到您的数据库?答案可能应该是实体框架。您需要考虑使用 EF 将数据从服务器端代码传输到数据库。
就您的视图和控制器而言,控制器是应用程序中所有计算和处理的地方,而视图几乎就像显示计算数据的模板。您需要确定要来回传递的数据。一般来说,鉴于您提供的信息量很少,视图看起来几乎就像您希望它看起来的样子,并且控制器必须获取从视图传递的图像,将其转换为缩略图,然后传递它(使用 EF)返回到您的数据库。
很多工作,嗯?;)
您必须创建 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>
}