這是我第一次翻譯文章,不足之處,還請見諒。 印度,現在之所以成為軟件出口大國,有很多地方都優于我們。其中一個首要的優勢就是印度的官方語言是英語,這就為以英語作為編程語言的印度程序員帶來得天獨厚的優越條件。對于我們從事IT業的人來說,也應該加強自已英語訓練。首先,感謝CSDN提供這樣的平臺。閑話不多說,正文如下:
導言 如果你有個已運行兩個月以上時間的網站,你也許會注意到你網站上已積聚了很多的圖片文件。盡管我們都已盡力為這些圖片文件很好的命名,但當我們去瀏覽這些圖片的文件名時,我們總是會很難想起一些圖片文件名有何特殊的含義或用處。 這時,我們通常會重復地用瀏覽器打開那些圖片,看看是什么圖片?這時,這段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.asp101.com/articles/john/imageviewer/imgview.zip。為了控制文件的大小,我沒有包含一個圖片例子。我再一次提醒你,用這個代碼做破壞并刪除很多相關圖片是很容易的。要注意,沒有刪除確認時,要確認用圖片復本來操作。
代碼更新 我已收到很多有關這個代碼的EMAIL。看了以后,我還是發現有很多問題。 第一:一些人沒有意識到他們必須設置代碼查找圖片的路徑。我現在已在放置代碼的目錄下設一個圖片目錄.所以,如果我把代碼放于http://www.weiw.com的根目錄下,代碼執行后,將顯示http://www.weiw.com/images/下的所有圖片。 你可以改變ImageFilePath 常量的值。你也可以在這兒放一些虛擬路徑,代碼將用Server.MapPath來確定適當的物理路徑。你可以很容易地指定你網站上的一些位置。例如,把那個常量的值從"images"改變為"/images",這樣可以讓程序指向網站根目錄下的images目錄。同理,可以修改ImageFilePath 的值達到同樣目的.
第二:當寫這個代碼時,我簡單地用在我機器里的文件類型。這樣只能在我的機器上順利運行。于是發現,文件類型的描述可以改變你的文件聯合的基礎。為了取得你選擇要顯示那些基于此類文件代替他們類型的擴展名。我已在這個ZIP文件中的代碼里實現了這個功能.現在這是最新的程序版本。 http://www.asp101.com/articles/john/imageviewer/imgview.zip
|