在我們的日常生活中數碼照像設備已經很普遍了我們會經常拍攝一些相片以供留念而隨著數碼照片的增多往往需要很好地管理這些照片以便更好地查閱留念現在網上有不少的電子相冊都能很好的實現這些功能那我們能否自己動手創建自己的相冊呢?當然可以在這篇文章中我們將利用aspnet來創建一個簡單的在線相冊以收藏我們的照片
首先來看下這個相冊有哪些功能在這個相冊中我們必須先把預先攝影好的照片放到一個目錄下去之後可以供在網上使用上一張下一張的鏈接一張張地查看
下面先介紹如何獲得文件夾中的圖片我們可以使用SystemIO命名空間中的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
其中用Servermappath獲得當前目錄的路徑而dirinfogetfiles()將會返回該目錄下的所有文件而由於我們的是相冊只需要看到比如JPGBMPGIF等圖象文件所以我們可以通過程序實現只裝載這些類型的文件這通過一個自定義的過程FilterForImages來實現該過程將只返回指定文件夾中圖象類型的文件代碼如下
以下為引用的內容
Function FilterForImages(images() as FileInfo) as FileInfo()
Dim newImages as New ArrayList(imagesLength)
Dim i as Integer
For i = to imagesLength
If PathGetExtension(images(i)Name) = jpg OrElse _
PathGetExtension(images(i)Name) = jpeg OrElse _
PathGetExtension(images(i)Name) = png OrElse _
PathGetExtension(images(i)Name) = gif then
newImagesAdd(images(i))
End If
Next
Return CType(newImagesToArray(GetType(FileInfo)) FileInfo())
End Function
該過程對於傳遞進來的FileInfo參數數組進行遍歷對文件夾中的文件的後綴名進行叛斷如果屬於圖象文件則添加到newimages數組中去並以arraylist形式返回
接下來我們看下如何顯示每一張圖片並以上一張下一張來顯示為了知道當前浏覽的是第幾張圖片可以通過使用傳遞參數的方法來實現先往窗體中添加一個image控件和文本框程序代碼如下
以下為引用的內容
Sub Page_Load(sender as Object e as EventArgs)
Dim imgIndex as Integer =
If Not RequestQueryString(N) is Nothing AndAlso _
IsNumeric(RequestQueryString(N)) then
imgIndex = CInt(RequestQueryString(N))
End If
currentImgTitleText = You are Viewing: & _
PathGetFileNameWithoutExtension(images(imgIndex)Name) & _
( & imgIndex + & of & imagesLength & )
currentImgImageUrl = PathGetFileName(images(imgIndex)Name)
End Sub
HTML部分代碼
以下為引用的內容
<asp:Label runat=
server
id=
currentImgTitle
/><br />
<asp:Image runat=
server
id=
currentImg
/>
在上面的代碼中使用變量imgindex來表示當前浏覽的是第幾張圖片剛開始時候N=則獲得images數組中的第一個變量也即第一張圖片之後每次讀取該變量值則可以知道當前浏覽的是第幾張圖片
From:http://tw.wingwit.com/Article/program/net/201311/15504.html