使用ASP.Net MVC一次性上传并存储许多图像到数据库,并创建缩略图。
ASP.Net MVC中出现了一个问题,即如何上传和存储多个图像到数据库,并同时创建缩略图。
问题的解决方法是创建两个类:MainClass和MainClassViewModel。MainClass类有一个带有标签名的图像属性,如下所示:
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()MainClassView
@Html.Images(m => m.Image1) @Html.ValidationMessageFor(model => model.Image1, "", new { @class = "text-danger" })}
通过以上步骤,可以实现在ASP.Net MVC中上传和存储多个图像到数据库,并同时创建缩略图。
文章标题:使用ASP.Net MVC一次性上传并存储多个图像到数据库,并同时创建缩略图的解决方法
在你的问题中,似乎你的知识范围涉及到了很多方面,包括ASP.NET MVC、图像处理算法、SQL服务器和一般的Web设计等。为了避免深入研究你的问题,我将简单地解释你需要做的事情。你需要自己进行相关的研究,因为没有任何数量的S.O.(Stack Overflow)的问题和答案能够给你适当的技术知识。
首先,你需要一个能够存储图像的数据库。下面是一个小教程:http://www.codeproject.com/Articles/354639/Storing-and-Retrieving-Images-from-SQL-Server-Usin。这可能需要一些时间。但是一旦你完成了这个步骤,你就需要进入你的项目并开始构建基本的架构。你的对象应该是什么样的?你的程序的流程是怎样的?一个重要的问题是你将如何连接到你的数据库?答案可能是使用Entity Framework。你需要研究如何使用EF来将数据从服务器端代码传输到数据库。
至于你的视图和控制器,控制器是你的应用程序中进行计算和处理的地方,而视图几乎像是显示计算出的数据的模板。你需要确定要在视图和控制器之间传递的数据。一般而言,根据你提供的少量信息,视图的外观几乎可以是你想要的任何样子,控制器必须将从视图传递过来的图像转换为缩略图,然后通过EF将其传递回数据库。
还有很多工作要做,是吧?;) 谢谢你的帮助,我的朋友。但是我已经使用了Code First构建了我的数据库,并且我已经做了很多工作。实际上,我只想知道如何一次性上传多个图像并逐个存储它们。我需要一些代码示例;-)
stackoverflow.com/questions/10956721/… - stackoverflow.com/questions/10402094/… - hanselman.com/blog/…