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

幾個(gè)典型的ASP應(yīng)用

[摘要]1. 下面的代碼演示了如何在服務(wù)端獲取來自客戶端瀏覽器中某一個(gè)圖片的x,y坐標(biāo),注意input控件的類型是image類型。 --------------------------------------------------------------------------------<for...

 1. 下面的代碼演示了如何在服務(wù)端獲取來自客戶端瀏覽器中某一個(gè)圖片的x,y坐標(biāo),注意input控件的類型是image類型。
--------------------------------------------------------------------------------<form>
<Input Name="ImageMap" Type="Image" Src="http://www.okasp.com/techinfo/ImageMap.jpg" Alt="Click Anywhere">
</form> <%ImageMap.x = <%=Request("ImageMap.x")
ImageMap.y = <%=Request("ImageMap.y")%> 2. 利用ADODB.Stream對(duì)象,在IE瀏覽器中下載服務(wù)端上的各類文件。
--------------------------------------------------------------------------------
即直接提示用戶下載而不是由瀏覽器打開某些文件。注意,下面的代碼拷貝到ASP文件中后,不要再添加一些非ASP代碼在頁(yè)面中:如HTML和javascript客戶端的代碼。
<%
'--------------------------------------------
Response.Buffer = True
Dim strFilePath, strFileSize, strFileNameConst adTypeBinary = 1strFilePath = "文件路徑 "
strFileSize = ... 文件大小,可選
strFileName = "文件名"Response.Clear'8*******************************************8
' 需要在你的服務(wù)器上安裝 MDAC 2.6 或MDAC2.7
'8*******************************************8
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePathstrFileType = lcase(Right(strFileName, 4)) '文件擴(kuò)展名' 通過文件擴(kuò)展名判斷 Content-Types
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select
Response.AddHeader "Content-Disposition", "attachment; 200497140650.htm= strFileName
Response.AddHeader "Content-Length", strFileSize
Response.Charset = "UTF-8" ' 客戶端瀏覽器的字符集UTF-8
Response.ContentType = ContentTypeResponse.BinaryWrite objStream.Read
Response.FlushobjStream.Close
Set objStream = Nothing%> 3.提升ASP頁(yè)面的響應(yīng)速率
--------------------------------------------------------------------------------在你的ASP頁(yè)面的第一行加入:
<% ENABLESESSIONSTATE = False %>
這會(huì)關(guān)閉session對(duì)象,提升你的服務(wù)器響應(yīng)速率,比較常見的問題是一個(gè)html頁(yè)面包含了兩個(gè)框架
頁(yè)面(至少有一個(gè)是ASP頁(yè)面,并使用了session),這將使得必須等待某一個(gè)框架頁(yè)(當(dāng)然這個(gè)框
架頁(yè)中使用了session)加載完后,另一個(gè)框架頁(yè)面才會(huì)顯示。
如果你使用代理訪問, 默認(rèn)情況下,許多代理服務(wù)器不會(huì)動(dòng)態(tài)緩存ASP頁(yè)面內(nèi)容,加入下面的代碼:
<%
Response.CacheControl = "Public"
%>
這行代碼會(huì)將ASP頁(yè)面緩存在代理服務(wù)器上,從而加快客戶端請(qǐng)求動(dòng)態(tài)頁(yè)面的響應(yīng)速率,一些不經(jīng)常
變化的ASP頁(yè)面將直接從代理服務(wù)器上取得。 4. 要知道瀏覽器(IE為例)不會(huì)解析回車和換行字符,如果你用Response.write方法寫一行包含了回車和換行字符的字符串到動(dòng)態(tài)頁(yè)面中,其結(jié)果可想而知,你需要做的是:
--------------------------------------------------------------------------------<%
Response.Write(Replace(body, vbCrLf,"<br>"))
%>
用<br>來代替回車和換行。注意:如果回車和換行字符出現(xiàn)在form中的input/textarea等控件中,可 以不必這么做。5. 用ASP代碼寫IIS日志
--------------------------------------------------------------------------------<%
, Response.AppendToLog "數(shù)據(jù)庫(kù)正在被訪問"
%>
執(zhí)行這段代碼后,在你的IIS日志中可能會(huì)出現(xiàn)下面的字符串:
127.0.0.1, -, 01/01/00, 12:00:34, W3SVC1,WEBSERVER,
127.0.0.1, 161342, 485, 228, 200, 0, get, /somefile.asp, 數(shù)據(jù)庫(kù)正在被訪問 注意:由于日志文件中的內(nèi)容是按逗號(hào)分隔,所以寫入的日志內(nèi)容應(yīng)避免使用逗號(hào)。6. 如何訪問遠(yuǎn)程計(jì)算機(jī)上MDB數(shù)據(jù)庫(kù)文件
--------------------------------------------------------------------------------如果你用ODBC連接(DSN方式或其它方式)到遠(yuǎn)程計(jì)算機(jī)的MDB文件,這將產(chǎn)生一個(gè)錯(cuò)誤:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
大致意思是該文件可能被其他用戶訪問或無足夠的權(quán)限訪問。 下面有兩種方式,避免這個(gè)錯(cuò)誤:
方式a. 使用DAO引擎訪問Dim File, Conn, RS
Const ReadOnly = False
File = "\\server\share\file.mdb"
Set Conn = CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(File,,ReadOnly)
Set RS = Conn.OpenRecordset(SQL)
方式b. ADO + Jet OLE DB provider方式Dim Conn, RS
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.Open "\\server\share\file.mdb"
Set RS = Conn.Execute(SQL)確定在運(yùn)行ASP頁(yè)面時(shí)有足夠的訪問權(quán)限以訪問遠(yuǎn)程計(jì)算機(jī)上的MDB文件,在訪問MDB文件前需要先登錄到遠(yuǎn)程計(jì)算機(jī),添加下面的代碼
Set UM = CreateObject("UserManager.Server")
,M.LogonUser "帳號(hào)", "口令", "域"
...
open database
...
UM.RevertToSelf
(出處:Viphot)