web|網頁
用
ASP技術實現在WEB網頁上瀏覽目錄及檔案
周仰平
摘要 目前在許多單位裡,象WORD、EXCEL或WPS該類文檔檔案已成為重要的資料資訊資源,在INTRANET WEB平台上如何高效率地管理這些資訊資源是一個需要解決的問題。本文是利用ASP技術開發一個基於WEB的應用程式,實現在WEB頁面上瀏覽目錄檔案,很輕易地做到諸如WORD、EXCEL和WPS等文檔檔案的查閱和下載,大大地減少資訊維護的工作量。
關鍵詞 ASP WEB 文檔檔案
前言:在INTRANET平台上,客戶用WEB瀏覽器從伺服器下載過來的資訊是以HTML標記構成的頁面,也就是平常所說的網頁,頁面一般分為兩類,一類是簡單的靜止不變的頁面,包括文字、表格和靜態映像等資訊,這種頁面可通過編寫HTML標記組成的文字檔或採用頁面製作工具如FRONTPAGE軟體來實現;另一類是動態具有互動性和智能化的頁面,這類頁面實現起來比較複雜,需要將HTML標記、ACTIVEX控制項及基於用戶端和服務端的指令碼語言(如VBScript、JAVAScript)組合在一起構成WEB應用程式,WEB 程式經過服務端和客戶機運行處理才得到頁面。製作頁面雖然有專用的頁面製作工具來做,但是,要完成頁面製作需掌握一定的專業知識,如HTML標記語言,如果要製作動態有互動功能的頁面,要求就更高了,需要專業人員才能做到。但是,目前在許多企事業單位中,資料資訊的表示形式許多是文檔檔案,如WORD、EXCEL、WPS和TXT等文檔,這些文檔檔案已成為重要的資料資訊資源,各部門之間的資料共用也是通過查詢和拷貝彼此的文檔檔案來實現的。如果文檔檔案不作任何轉換,就能在WEB瀏覽器中被查詢和下載,那麼資訊處理的效率將會提高,大大地減少資訊維護的工作量。
本文是運用ASP技術實現在WEB頁面瀏覽檔案夾及檔案,通過超串連功能查看相關的ACTIVEX文檔資訊,其功能類似於FTP服務,但比FTP服務效能更好,一、介面更友好,同WEB頁面無縫地串連;二、容易控制,安全性好,可以做到該需要查看的文檔才顯示在頁面上,不該看的文檔不顯示。
二、ASP
技術及其對象
從IIS3.0開始,MICROSOFT推出了ACTIVE SERVER PAGES,既ASP技術,ASP能將HTML頁面、指令碼語言(VBScript、JAVAScript)和ACTIVEX控制項有機地組合起來,建立具有動態、互動、高效率的頁面和基於WEB資料庫的功能強大的伺服器應用程式。
ASP還有一個特點是其擁有功能強大的內建對象,對象之中又有很多的方法和屬性。在用ASP開發WEB應用程式時,能夠調用其對象及其方法,不但能提高編程效率,而且程式編碼更最佳化。
1、ASP包括了六個內建對象:
Request 對象 是從用戶端取得資訊
Response 對象 將資訊送給用戶端
Session 對象 儲存在一個Session內的使用者資訊
Application對象 在一個ASP-Application內讓不同的用戶端共用資訊
Server 對象 提供一些服務端使用的方法。在本文的ASP程式中運用了該對象的 幾個方法,在後面將對其作具體地說明。
Objectcontext對象 可以配合Microsoft Transaction Server進行分散式交易處理
2、Server對象的重要方法
Createobject方法 Createobject方法用於建立登入到伺服器上的ACTIVEX組件變數執行個體。比如在ASP程式中想要瀏覽檔案夾及檔案,必須先用Createobject方法建立FileSystemObject對象的變數執行個體fs,然後調用物件變數fs的方法以擷取檔案夾(folder)及檔案(file),下面是擷取檔案夾為 /dcw 的Folder對象的ASP代碼:
‘先建立FileSystemObject
set fs=server.Createobject(“scripting.FileSystemobject”)
‘擷取 /dcw檔案夾的實際路徑
Fullpath=Server.mapPath(“/dcw”)
‘建立 /dcw檔案夾所對應的 Folder對象
set fd=fs.getFolder(fullpath)
MapPath方法 轉換Web Server 虛擬路徑為伺服器端實際路徑。如在IIS Web伺服器上假設有一實際路徑為C:\財務部,在建立Web 虛擬路徑時取名為 dcw,書寫格式為 /dcw,事實上 Server.MapPath(“/dcw”)就是它的實際路徑 C:\財務部。一般地,在 Web應用中瀏覽網頁時使用的網址就是虛擬路徑,在檔案存取過程中使用的是實際路徑,如前面提到的 set fd=fs.getfolder(fullpath)語句裡,fullpath就表示為實際路徑
URLEncode 方法 根據URL編碼原則,將URL 中的特殊字元編碼為字串
HtmlEncode方法 使用Htmlencode方法編碼為 ASCII形式的Html檔案
三、實現過程
用戶端向服務端傳送請求資訊
客戶向服務端傳送的請求資訊是一個ASP檔案Listf.asp和三個參數in_folder,out_file,prompt。
In_folder 表示為要瀏覽的檔案夾
Out_file 表示退出返回到的頁面
Prompt 表示在列出檔案夾的頁面上的提示資訊
以瀏覽 “C:\財務部”檔案夾資訊為例,其WEB虛擬目錄為“/dcw”,程式退出返回到首頁,首頁的虛擬路徑可表示為“/”,提示資訊為“財務資料資訊”。在 Web 程式中加入下面一條語句就可以查看“c:\財務部”檔案夾下的所有子檔案夾及檔案。
<a Href=listf.asp?in_folder=/dcw&out_file=/&prompt=財務資料資訊>財務檔案資訊</a>
‘檔案開始
<HTML><BODY bgcolor=”#c0c0c0”>
<%
‘2、擷取參數資訊
Folder=Request(“Folder”)
If Folder=”” Then
In_folder=request(“in_folder”)
Out_file=request(“out_file”)
Prompt=request(“prompt”)
If in_folder<>”” and out_file<>’’ then
Session(“in_folder”)=in_folder
Session(“out_file”)=out_file
Session(“prompt”)=prompt
End if
Folder=session(“in_folder”)
Prompt=session(“prompt”)
‘ 輸出檔案夾名和提示資訊
response.write “<H2 align=””” & “center” & “””>” & prompt & “系列檔案目錄<HR></H2>”
else
subfolder=folder
folder=session(“in_folder”) & folder
‘輸出檔案夾名和提示資訊
response.write “<H2 align=””” & “center” & “””>” & mid(ucase(replace(subfolder,”/”,”_”)),2) & “<HR></H2>”
end if
AspPath=Request.serverVariables(“PATH_INFO”)
‘3、建立檔案夾物件變數執行個體 fd
set fs= Server.createObject(“Scripting.filesystemobject”)
set fd= fs.getfolder(Server.MapPath(folder))
‘4、構造超串連函數