明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

一個(gè)ASP版的圖片瀏覽器

[摘要]這是我第一次翻譯文章,不足之處,還請(qǐng)見諒。 印度,現(xiàn)在之所以成為軟件出口大國(guó),有很多地方都優(yōu)于我們。其中一個(gè)首要的優(yōu)勢(shì)就是印度的官方語(yǔ)言是英語(yǔ),這就為以英語(yǔ)作為編程語(yǔ)言的印度程序員帶來得天獨(dú)厚的優(yōu)越條件。對(duì)于我們從事IT業(yè)的人來說,也應(yīng)該加強(qiáng)自已英語(yǔ)訓(xùn)練。首先,感謝CSDN提供這樣的平臺(tái)。閑話不多...

這是我第一次翻譯文章,不足之處,還請(qǐng)見諒。
印度,現(xiàn)在之所以成為軟件出口大國(guó),有很多地方都優(yōu)于我們。其中一個(gè)首要的優(yōu)勢(shì)就是印度的官方語(yǔ)言是英語(yǔ),這就為以英語(yǔ)作為編程語(yǔ)言的印度程序員帶來得天獨(dú)厚的優(yōu)越條件。對(duì)于我們從事IT業(yè)的人來說,也應(yīng)該加強(qiáng)自已英語(yǔ)訓(xùn)練。首先,感謝CSDN提供這樣的平臺(tái)。閑話不多說,正文如下:

導(dǎo)言
如果你有個(gè)已運(yùn)行兩個(gè)月以上時(shí)間的網(wǎng)站,你也許會(huì)注意到你網(wǎng)站上已積聚了很多的圖片文件。盡管我們都已盡力為這些圖片文件很好的命名,但當(dāng)我們?nèi)g覽這些圖片的文件名時(shí),我們總是會(huì)很難想起一些圖片文件名有何特殊的含義或用處。
這時(shí),我們通常會(huì)重復(fù)地用瀏覽器打開那些圖片,看看是什么圖片?這時(shí),這段ASP代碼就可以做為圖片瀏覽器(和清理器)來瀏覽這些圖片并執(zhí)行清理操作。

編碼:
事實(shí)上,這個(gè)程序就是包含某目錄下的所有圖片的一個(gè)列表頁(yè)面,用FileSystemObject 對(duì)象來列舉出這些圖片文件(gif和jpeg文件).
在頁(yè)面里加一個(gè)鏈接 toggle display ,來控制是否顯示圖片。當(dāng)你有很多文件而不想都加載它們,你可以只讓頁(yè)面的一個(gè)圖片顯示一個(gè)鏈接,相反,如果你不確定一些文件命名是含義,這個(gè)功能將能很好的幫助你進(jìn)行清理操作。

下面是很簡(jiǎn)潔的代碼
<%@ Language=VBScript %>
<% Option Explicit %>
<%
Const ImageFilePath = "images"
Const DeleteButtonLabel = "Delete Selected Images"

Dim objFSO
Dim objFolder
Dim objFile

Dim strFileName
Dim strFileExtension

Dim blnShowImages

If Request.QueryString("ShowImages") = "" Then
blnShowImages = False
Else
blnShowImages = CBool(Request.QueryString("ShowImages"))
End If

If Request.Form("btnDelete") = DeleteButtonLabel Then
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

For Each strFileName In Request.Form("delete")
objFSO.DeleteFile(Server.MapPath(ImageFilePath & "/" & _
strFileName))
Next

Set objFSO = Nothing
End If
%>
<html>
<head>
<title>ASP 101 Image Browser & Killer!</title>
</head>
<body>

<form action="<%= Request.ServerVariables("URL") %>" method="post">

<table border="1">
<tr>
<th>Image Name</th>
<th>Image <a href="<%= Request.ServerVariables("URL") %>?
ShowImages=<%= Not blnShowImages %>">(Toggle Display)</a></th>
<th>Delete This Image</th>
</tr>
<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(ImageFilePath))

For Each objFile In objFolder.Files
strFileExtension = LCase(Mid(objFile.Name, _
InStrRev(objFile.Name, ".", -1, 1) + 1))

If strFileExtension = "gif" Or strFileExtension = "jpg" Or _
strFileExtension = "jpeg" Then
' Original image file identification option:
'If objFile.Type = "GIF Image" Or _
objFile.Type = "JPEG Image" Then
%>
<tr>
<td>
<a href="<%= ImageFilePath & "/" & objFile.Name %>">
<%= objFile.Name %></a>
</td>
<%
If blnShowImages Then
%>
<td>
<img src="<%= ImageFilePath & "/" & objFile.Name %>" />
</td>
<%
Else
%>
<td>
<a href="<%= ImageFilePath & "/" & objFile.Name %>">
View Image</a>
</td>
<%
End If
%>
<td align="center">
<input type="checkbox" name="delete"
value="<%= objFile.Name %>" />
</td>
<%
End If
Next

Set objFolder = Nothing
Set objFSO = Nothing
%>
<tr>
<td colspan="3" align="right">
<input type="submit" name="btnDelete"
value="<%= DeleteButtonLabel %>">
</td>
</tr>
</table>

</form>

</body>
</html>

執(zhí)行刪除操作時(shí),一定要注意,如果在程序里不加刪除確認(rèn)提示,程序?qū)⒉荒艹废麆h除操作。

結(jié)論
人們總是不會(huì)拿asp來建大型的可升級(jí)的網(wǎng)站。(譯者注:這句不翻譯不是很恰當(dāng),根據(jù)我的工作經(jīng)歷,ASP完全可以建設(shè)大型的網(wǎng)站系統(tǒng)。在ASP方面中,本人曾參予建設(shè)過大型企業(yè)內(nèi)部網(wǎng),移動(dòng)行業(yè)應(yīng)用等。)但有時(shí)候你可以用這個(gè)簡(jiǎn)化你的工作,即使這代碼從沒在WEB上發(fā)表。

獲取代碼
你可以下載包含這個(gè)代碼的討論的ZIP文件http://www.asp101.com/articles/john/imageviewer/imgview.zip。為了控制文件的大小,我沒有包含一個(gè)圖片例子。我再一次提醒你,用這個(gè)代碼做破壞并刪除很多相關(guān)圖片是很容易的。要注意,沒有刪除確認(rèn)時(shí),要確認(rèn)用圖片復(fù)本來操作。

代碼更新
我已收到很多有關(guān)這個(gè)代碼的EMAIL?戳艘院,我還是發(fā)現(xiàn)有很多問題。
第一:一些人沒有意識(shí)到他們必須設(shè)置代碼查找圖片的路徑。我現(xiàn)在已在放置代碼的目錄下設(shè)一個(gè)圖片目錄.所以,如果我把代碼放于http://www.weiw.com的根目錄下,代碼執(zhí)行后,將顯示http://www.weiw.com/images/下的所有圖片。
你可以改變ImageFilePath 常量的值。你也可以在這兒放一些虛擬路徑,代碼將用Server.MapPath來確定適當(dāng)?shù)奈锢砺窂。你可以很容易地指定你網(wǎng)站上的一些位置。例如,把那個(gè)常量的值從"images"改變?yōu)?/images",這樣可以讓程序指向網(wǎng)站根目錄下的images目錄。同理,可以修改ImageFilePath 的值達(dá)到同樣目的.

第二:當(dāng)寫這個(gè)代碼時(shí),我簡(jiǎn)單地用在我機(jī)器里的文件類型。這樣只能在我的機(jī)器上順利運(yùn)行。于是發(fā)現(xiàn),文件類型的描述可以改變你的文件聯(lián)合的基礎(chǔ)。為了取得你選擇要顯示那些基于此類文件代替他們類型的擴(kuò)展名。我已在這個(gè)ZIP文件中的代碼里實(shí)現(xiàn)了這個(gè)功能.現(xiàn)在這是最新的程序版本。
http://www.asp101.com/articles/john/imageviewer/imgview.zip