熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

溫故知新:幾個經典的ASP應用

2013-11-13 10:22:11  來源: .NET編程 
    下面的代碼演示了如何在服務端獲取來自客戶端浏覽器中某一個圖片的xy坐標注意input控件的類型是image類型  <form>
<Input Name=ImageMap Type=Image Src=ImageMapjpg Alt=Click Anywhere>
</form>

  <%ImageMapx = <%=Request(ImageMapx)
ImageMapy = <%=Request(ImageMapy)%>


     利用ADODBStream對象在IE浏覽器中下載服務端上的各類文件

  即直接提示用戶下載而不是由浏覽器打開某些文件注意下面的代碼拷貝到ASP文件中後不要再添加一些非ASP代碼在頁面中如HTML和Javascript客戶端的代碼  <%

ResponseBuffer = True
Dim strFilePath strFileSize strFileName

  Const adTypeBinary =

  strFilePath = 文件路徑
strFileSize = 文件大小可選
strFileName = 文件名

  ResponseClear

  *******************************************
需要在你的服務器上安裝 MDAC 或MDAC
*******************************************
Set objStream = ServerCreateObject(ADODBStream)
objStreamOpen
objStreamType = adTypeBinary
objStreamLoadFromFile strFilePath

  strFileType = lcase(Right(strFileName )) 文件擴展名

   通過文件擴展名判斷 ContentTypes
Select Case strFileType
Case asf
ContentType = video/xmsasf
Case avi
ContentType = video/avi
Case doc
ContentType = application/msword
Case zip
ContentType = application/zip
Case xls
ContentType = application/vndmsexcel
Case gif
ContentType = image/gif

 Case jpg jpeg
ContentType = image/jpeg
Case wav
ContentType = audio/wav
Case mp
ContentType = audio/mpeg
Case mpg mpeg
ContentType = video/mpeg
Case rtf
ContentType = application/rtf
Case html
ContentType = text/html
Case asp
ContentType = text/asp
Case Else
Handle All Other Files
ContentType = application/octetstream
End Select

  ResponseAddHeader ContentDisposition attachment; filename= strFileName
ResponseAddHeader ContentLength strFileSize
ResponseCharset = UTF 客戶端浏覽器的字符集UTF
ResponseContentType = ContentType

  ResponseBinaryWrite objStreamRead
ResponseFlush

  objStreamClose
Set objStream = Nothing

  %>


    提升ASP頁面的響應速率 

    在你的ASP頁面的第一行加入
 <% ENABLESESSIONSTATE = False %>
    這會關閉session對象提升你的服務器響應速率比較常見的問題是一個html頁面包含了兩個框架
頁面(至少有一個是ASP頁面並使用了session)這將使得必須等待某一個框架頁(當然這個框
架頁中使用了session)加載完後另一個框架頁面才會顯示

    如果你使用代理訪問 默認情況下許多代理服務器不會動態緩存ASP頁面內容加入下面的代碼  <%
ResponseCacheControl = Public
%>
    這行代碼會將ASP頁面緩存在代理服務器上從而加快客戶端請求動態頁面的響應速率一些不經常變化的ASP頁面將直接從代理服務器上取得

   要知道浏覽器(IE為例)不會解析回車和換行字符如果你用Responsewrite方法寫一行包含了回車和換行字符的字符串到動態頁面中其結果可想而知你需要做的是  <%
ResponseWrite(Replace(body vbCrLf<br>))
%>


    用<br>來代替回車和換行注意如果回車和換行字符出現在form中的input/textarea等控件中可以不必這麼做

   用ASP代碼寫IIS日志  <%
     ResponseAppendToLog 數據庫正在被訪問
%>


    執行這段代碼後在你的IIS日志中可能會出現下面的字符串
    // :: WSVCWEBSERVER
    get /somefileasp 數據庫正在被訪問

  注意由於日志文件中的內容是按逗號分隔所以寫入的日志內容應避免使用逗號

   如何訪問遠程計算機上MDB數據庫文件

  如果你用ODBC連接(DSN方式或其它方式)到遠程計算機的MDB文件這將產生一個錯誤
Microsoft OLE DB Provider for ODBC Drivers error
    大致意思是該文件可能被其他用戶訪問或無足夠的權限訪問

  下面有兩種方式避免這個錯誤

    方式a 使用DAO引擎訪問  Dim File Conn RS
  Const ReadOnly = False

     File = \\server\share\filemdb
  Set Conn = CreateObject(DAODBEngine)Workspaces()OpenDatabase(FileReadOnly)
  Set RS = ConnOpenRecordset(SQL)


    方式b ADO + Jet OLE DB provider方式
 Dim Conn RS
  Set Conn = CreateObject(ADODBConnection)
  ConnProvider = MicrosoftJetOLEDB
  ConnOpen \\server\share\filemdb
  Set RS = ConnExecute(SQL)
    確定在運行ASP頁面時有足夠的訪問權限以訪問遠程計算機上的MDB文件在訪問MDB文件前需要先

  登錄到遠程計算機添加下面的代碼  Set UM = CreateObject(UserManagerServer)
    UMLogonUser 帳號 口令

open database

    UMRevertToSelf


From:http://tw.wingwit.com/Article/program/net/201311/13407.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.