服务器之家

服务器之家 > 正文

几个经典的ASP应用

时间:2019-10-26 12:09     来源/作者:asp教程网

1. 下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的x,y坐标,注意input控件的类型是image类型。  

 <form> 
<Input Name="ImageMap" Type="Image" Src="ImageMap.jpg" Alt="Click Anywhere"> 
</form>  

<%ImageMap.x = <%=Request("ImageMap.x") 
ImageMap.y = <%=Request("ImageMap.y")%>  


  2. 利用ADODB.Stream对象,在IE浏览器中下载服务端上的各类文件。  

  即直接提示用户下载而不是由浏览器打开某些文件。注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和Javascript客户端的代码。 


 <% 
'-------------------------------------------- 
Response.Buffer = True 
Dim strFilePath, strFileSize, strFileName 
Const adTypeBinary = 1 

strFilePath = "文件路径 " 
strFileSize = ... 文件大小,可选 
strFileName = "文件名" 

Response.Clear 

'*******************************************8 
' 需要在你的服务器上安装 MDAC 2.6 或MDAC2.7 
'8*******************************************8 
Set objStream = Server.CreateObject("ADODB.Stream") 
objStream.Open 
objStream.Type = adTypeBinary 
objStream.LoadFromFile strFilePath 

strFileType = lcase(Right(strFileName, 4)) '文件扩展名 

' 通过文件扩展名判断 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; filename= strFileName 
Response.AddHeader "Content-Length", strFileSize 
Response.Charset = "UTF-8" ' 客户端浏览器的字符集UTF-8 
Response.ContentType = ContentType 

Response.BinaryWrite objStream.Read 
Response.Flush 

objStream.Close 
Set objStream = Nothing 

%>  


  3.提升ASP页面的响应速率  

  在你的ASP页面的第一行加入: 

 <% ENABLESESSIONSTATE = False %>  

 这会关闭session对象,提升你的服务器响应速率,比较常见的问题是一个html页面包含了两个框架页面(至少有一个是ASP页面,并使用了session),这将使得必须等待某一个框架页(当然这个框架页中使用了session)加载完后,另一个框架页面才会显示。 

  如果你使用代理访问, 默认情况下,许多代理服务器不会动态缓存ASP页面内容,加入下面的代码: 

 <% 
     Response.CacheControl = "Public" 
 %>  


  这行代码会将ASP页面缓存在代理服务器上,从而加快客户端请求动态页面的响应速率,一些不经常变化的ASP页面将直接从代理服务器上取得。  

  4. 要知道浏览器(IE为例)不会解析回车和换行字符,如果你用Response.write方法写一行包含了回车和换行字符的字符串到动态页面中,其结果可想而知,你需要做的是:  


 <% 
      Response.Write(Replace(body, vbCrLf,"<br>")) 
 %>  


  用<br>来代替回车和换行。注意:如果回车和换行字符出现在form中的input/textarea等控件中,可以不必这么做。 

  5. 用ASP代码写IIS日志  


 <% 
     Response.AppendToLog "数据库正在被访问" 
 %>  


  执行这段代码后,在你的IIS日志中可能会出现下面的字符串: 
127.0.0.1, -, 01/01/00, 12:00:34, W3SVC1,WEBSERVER,  
127.0.0.1, 161342, 485, 228, 200, 0, get, /somefile.asp, 数据库正在被访问  

  注意:由于日志文件中的内容是按逗号分隔,所以写入的日志内容应避免使用逗号。 

  6. 如何访问远程计算机上MDB数据库文件  

  如果你用ODBC连接(DSN方式或其它方式)到远程计算机的MDB文件,这将产生一个错误: 
Microsoft OLE DB Provider for ODBC Drivers error '80004005'  
大致意思是该文件可能被其他用户访问或无足够的权限访问。  

  下面有两种方式,避免这个错误: 

    方式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)  


   确定在运行ASP页面时有足够的访问权限以访问远程计算机上的MDB文件,在访问MDB文件前需要先 

  登录到远程计算机,添加下面的代码 


     Set UM = CreateObject("UserManager.Server") 
    UM.LogonUser "帐号", "口令", "域" 
... 
open database 
... 
    UM.RevertToSelf

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部