Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Asp.Net和SQL显示照片库_Asp.net_Sql_Photo_Image Gallery - Fatal编程技术网

使用Asp.Net和SQL显示照片库

使用Asp.Net和SQL显示照片库,asp.net,sql,photo,image-gallery,Asp.net,Sql,Photo,Image Gallery,我最近将照片添加到我的SQL数据库中,并使用Asp:Image将它们显示在*.aspx页面上。此控件的ImageUrl存储在单独的*.aspx页面中。它适用于个人资料图片 我手头有一个新问题。我需要每个用户都能够有自己的照片库页面。我希望照片存储在sql数据库中。储存照片并不困难。问题是显示照片。我希望照片以缩略网格的方式存储,当用户单击照片时,它应该在单独的页面上显示照片 最好的方法是什么。显然,它不是使用Asp:Image。我很好奇是否应该使用Gridview。如果是这样的话,我该怎么做?它

我最近将照片添加到我的SQL数据库中,并使用Asp:Image将它们显示在*.aspx页面上。此控件的ImageUrl存储在单独的*.aspx页面中。它适用于个人资料图片

我手头有一个新问题。我需要每个用户都能够有自己的照片库页面。我希望照片存储在sql数据库中。储存照片并不困难。问题是显示照片。我希望照片以缩略网格的方式存储,当用户单击照片时,它应该在单独的页面上显示照片

最好的方法是什么。显然,它不是使用Asp:Image。我很好奇是否应该使用Gridview。如果是这样的话,我该怎么做?它们应该是存储在数据库中的缩略图大小吗

一旦图片显示完毕,点击另一页的外观,使其显示正确的图像。我认为通过url发送照片ID是不正确的

下面是我用来显示个人资料图片的页面代码

受保护的无效页面加载(对象发送方、事件参数e) {


您可能会有一个只显示照片的页面(如上面所述),但您的条件会有所不同。您不会使用
WHERE[UserId]='“+User.Identity.Name
,而是必须为数据库中照片的id发送查询字符串id

然后,当你想要在你的aspx页面中显示图片时,你必须在上面加上一个图像html标签

如何在页面上放置html图像标记并不重要。

您可以试试 或者。他们应该让您从网格端开始。从url发送imageid时进行更正。查看会话变量或隐藏控件,发布表单并在下一页进行阅读

我会查看gridview,并将模板列与gridview中的html图像标记结合使用。在上传时创建缩略图,并将其存储在数据库中。从那里,您可以轻松检索它。这种方式显示图像更快,并且在显示时无需进行缩略图转换。

“此控件的ImageUrl存储在单独的*.aspx页面中。它对配置文件图片非常有用。“-与其使用.aspx页面,不如使用通用ASP.NET处理程序(.ashx)?它们比.aspx稍轻。只需搜索“ASP.NET通用处理程序”“您会发现一些示例。它基本上是您现在在.aspx页面后面的代码,但没有所有页面初始化/呈现开销


“我希望照片以缩略网格的方式存储,当用户单击照片时,它应该在单独的页面上显示照片。”-我认为任何支持项元素模板的ASP.NET可重复控件(如DataGrid、GridView、Repeater、ASP.NET 3.5中的ListView等)在这里应该可以帮你做到这一点。只需根据你的缩略图设置图像或asp:image的高度和宽度。使用href将你在HTML锚中使用的任何标记包装到以“全尺寸”显示图像的页面上。让我们来解构你的问题:

它们的大小应该是存储在数据库中的缩略图大小吗?
是。第一次请求照片缩略图时生成缩略图,并将其缓存在数据库中以备将来访问

显然,不使用Asp:Image是不明智的
使用Asp:Image没有问题。您会满意的

我很好奇是否应该使用Gridview
也许中继器更好,但如果您熟悉gridview,就可以使用它

我认为通过url发送照片ID是不正确的。
这是正确的,但是您应该检查照片是否属于当前用户(不要信任URL)

生成缩略图
您将了解到由.net生成的调整大小的图像质量很差。您应该使用一些GDI功夫来获得高质量的图片。 有关详细信息,请参阅本帖。

该控件将帮助您直接从数据库显示图像。您可以将图像字段直接绑定到ImageContent属性,也可以指定是否希望显示为缩略图,并提供缩略图大小


要获得它,请转到

如果您不想重新发明轮子,您可以将gallery Server Pro(www.galleryserverpro.com)之类的开放源代码库集成到您的网站中。它是用C#/ASP.NET编写的,可以做您想做的所有事情

罗杰


[免责声明]我是Gallery Server Pro的创建者和首席开发者[/免责声明]

是否有人这样做,或者是否有更好的方法来显示照片库。我的意思是,我仍然希望照片存储在sql.+1中,以便使用ashx。图像处理程序也有很多这样的例子。
 string sql = "SELECT [ProfileImage] FROM [UserProfile] WHERE [UserId] = '" + User.Identity.Name.ToString() + "'";

 string strCon = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SocialSiteConnectionString"].ConnectionString;
    SqlConnection conn = new SqlConnection(strCon);

 SqlCommand comm = new SqlCommand(sql, conn);

 conn.Open();

 Response.ContentType = "image/jpeg";

 Response.BinaryWrite((byte[])comm.ExecuteScalar());

 conn.Close();

}