用ASP.NET创建网络相册保存美丽记忆

 在我们的日常生活中数码照像设备已经很普遍了 我们会经常拍摄一些相片以供留念 而随着数码照片的增多 往往需要很好地管理这些照片 以便更好地查阅留念 现在网上有不少的电子相册 都能很好的实现这些功能 那我们能否自己动手创建自己的相册呢?当然可以 在这篇文章中 我们将利用asp net 来创建一个简单的在线相册 以收藏我们的照片

 首先来看下 这个相册有哪些功能 在这个相册中 我们必须先把预先摄影好的照片放到一个目录下去 之后 可以供在网上使用 上一张 下一张 的链接一张张地查看

 下面先介绍如何获得文件夹中的图片 我们可以使用System IO命名空间中的DirectoryInfo类来实现 将文件夹所在的路径做为参数传递到该类的构造函数中 并声明一个DirectoryInfo类的实例 DirectoryInfo类中有一个GetFiles()的方法 会返回FileInfo的对象数组 而每一个FileInfo的实例将包含指定路径下文件的具体信息 下面的代码片段说明了该过程

 以下为引用的内容 Sub Page_Load(sender as Object e as EventArgs)  Get list of images Dim dirInfo as New DirectoryInfo(Server MapPath( )) Dim images() as FileInfo = FilterForImages(dirInfo GetFiles())  End Sub

 其中 用Server mappath获得当前目录的路径 而dirinfo getfiles()将会返回该目录下的所有文件 而由于我们的是相册 只需要看到比如JPG BMP GIF等图象文件 所以我们可以通过程序实现 只装载这些类型的文件 这通过一个自定义的过程FilterForImages来实现 该过程将只返回指定文件夹中图象类型的文件 代码如下

以下为引用的内容 Function FilterForImages(images() as FileInfo) as FileInfo() Dim newImages as New ArrayList(images Length)

Dim i as Integer For i = to images Length If Path GetExtension(images(i) Name) = jpg OrElse _   Path GetExtension(images(i) Name) = jpeg OrElse _  Path GetExtension(images(i) Name) = png OrElse _  Path GetExtension(images(i) Name) = gif then    newImages Add(images(i))  End If Next

Return CType(newImages ToArray(GetType(FileInfo)) FileInfo())End Function

?  该过程对于传递进来的FileInfo参数数组进行遍历 对文件夹中的文件的后缀名进行叛断 如果属于图象文件 则添加到newimages数组中去 并以arraylist形式返回

 接下来 我们看下如何显示每一张图片 并以 上一张 下一张 来显示 为了知道当前浏览的是第几张图片 可以通过使用传递参数的方法来实现 先往窗体中添加一个image控件和文本框 程序代码如下

以下为引用的内容 Sub Page_Load(sender as Object e as EventArgs) 

Dim imgIndex as Integer =If Not Request QueryString( N ) is Nothing AndAlso _  IsNumeric(Request QueryString( N )) then   imgIndex = CInt(Request QueryString( N )) End If  currentImgTitle Text = You are Viewing: & _  Path GetFileNameWithoutExtension(images(imgIndex) Name) & _   ( & imgIndex + & of & images Length & )  currentImg ImageUrl = Path GetFileName(images(imgIndex) Name)    End Sub

 HTML部分代码

以下为引用的内容 <asp:Label runat= server id= currentImgTitle /><br /><asp:Image runat= server id= currentImg />? lishixinzhi/Article/program/net/201311/15504