這是我第一次翻譯文章,不足之處,請見諒。
印度,現在之所以成為軟體出口大國,有很多地方都比我們好。其中一個首要的優勢就是印度的官方語言是英語,這為以英語作為程式語言的印度程式設計師帶來得天獨厚的優越條件。對於我們從事IT業的人來說,也應該加強自已英語訓練。
導言如果你有個已經運行兩個月以上時間的網站,你也許會注意到你網站上已累積了許多的圖片檔案。儘管我們都盡力為這些圖片檔案很好的命名,但當我們去瀏覽這些圖片的檔案名稱時,我們總是會很難想起一些圖片檔案名稱有何特殊的含義或用處。
這時,我們通常會重複地用瀏覽器開啟那些圖片,看看是什麼圖片?這時,這段ASP程式碼就可以做為圖片瀏覽器(和清理器)來瀏覽這些圖片並執行清理操作。
編碼:
事實上,這個程式就是包含某目錄下的所有圖片的一個列表頁面,用FileSystemObject 物件來列舉這些圖片檔案(gif和jpeg檔案).
在頁面裡加一個連結toggle display ,來控制是否顯示圖片。當你有很多文件而不想都加載它們,你可以只讓頁面的一個圖片顯示一個鏈接,相反,如果你不確定一些文件命名是含義,這個功能將能很好的幫助你進行清理操作。
下面是很簡潔的程式碼
<%@ 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>
執行刪除操作時,請務必注意,如果在程式中不加刪除確認提示,程式將無法撤銷刪除操作。
結論人們總是不會拿asp來建造大型的可升級的網站。 (譯者註:這句不翻譯不是很恰當,根據我的工作經歷,ASP完全可以建設大型的網站系統。在ASP方面中,本人曾參予建設過大型企業內部網,移動行業應用等。)但有時候你可以用這個簡化你的工作,即使這代碼從來沒在WEB上發表。
取得程式碼你可以下載包含這個程式碼的討論的ZIP檔http://www.weiw.com的根目錄下,程式碼執行後,將顯示http://www.weiw.com/images/下的所有圖片。
你可以改變ImageFilePath 常數的值。你也可以在這裡放一些虛擬路徑,程式碼將用Server.MapPath來決定適當的實體路徑。你可以很容易地指定你網站上的一些位置。例如,把那個常數的值從"images"改為"/images",這樣可以讓程式指向網站根目錄下的images目錄。同理,可以修改ImageFilePath 的值達到相同目的。
第二:當寫這個程式碼時,我簡單地用在我機器裡的檔案類型。這樣只能在我的機器上順利運作。於是發現,文件類型的描述可以改變你的文件聯合的基礎。為了取得你選擇要顯示那些基於此類文件代替他們類型的擴展名。我已在這個ZIP檔案中的程式碼裡實現了這個功能.現在這是最新的程式版本。