找回密码
 注-册

QQ登录

只需一步,快速开始

查看: 1340|回复: 0

[ASP] 动态网页ASP中常用的6个程序

[复制链接]
Leya 发表于 2008-3-31 11:01:16 | 显示全部楼层 |阅读模式
  1. 1. 下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的x,y坐标,注意input控件的类型是image类型。
  2. <form>
  3. <Input Name="ImageMap" Type="Image" Src="ImageMap.jpg" Alt="Click Anywhere">
  4. </form>
  5. <%ImageMap.x = <%=Request("ImageMap.x")
  6. ImageMap.y = <%=Request("ImageMap.y")%>

  7. 2. 利用ADODB.Stream对象,在IE浏览器中下载服务端上的各类文件。  即直接提示用户下载而不是由浏览器打开某些文件。注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和javascript客户端的代码。
  8. <%
  9. '--------------------------------------------
  10. Response.Buffer = True
  11. Dim strFilePath, strFileSize, strFileName
  12. Const adTypeBinary = 1
  13. strFilePath = "文件路径 "
  14. strFileSize = ... 文件大小,可选
  15. strFileName = "文件名"
  16. Response.Clear
  17. '8*******************************************8
  18. ' 需要在你的服务器上安装 MDAC 2.6 或MDAC2.7
  19. '8*******************************************8
  20. Set objStream = Server.CreateObject("ADODB.Stream")
  21. objStream.Open
  22. objStream.Type = adTypeBinary
  23. objStream.LoadFromFile strFilePath
  24. strFileType = lcase(Right(strFileName, 4)) '文件扩展名
  25. ' 通过文件扩展名判断 Content-Types

  26. Select Case strFileType
  27. Case ".asf"
  28. ContentType = "video/x-ms-asf"
  29. Case ".avi"
  30. ContentType = "video/avi"
  31. Case ".doc"
  32. ContentType = "application/msword"
  33. Case ".zip"
  34. ContentType = "application/zip"
  35. Case ".xls"
  36. ContentType = "application/vnd.ms-excel"
  37. Case ".gif"
  38. ContentType = "image/gif"
  39. Case ".jpg", "jpeg"
  40. ContentType = "image/jpeg"
  41. Case ".wav"
  42. ContentType = "audio/wav"
  43. Case ".mp3"
  44. ContentType = "audio/mpeg3"
  45. Case ".mpg", "mpeg"
  46. ContentType = "video/mpeg"
  47. Case ".rtf"
  48. ContentType = "application/rtf"
  49. Case ".htm", "html"
  50. ContentType = "text/html"
  51. Case ".asp"
  52. ContentType = "text/asp"
  53. Case Else
  54. 'Handle All Other Files
  55. ContentType = "application/octet-stream"
  56. End Select
  57. Response.AddHeader "Content-Disposition", "attachment; filename= strFileName
  58. Response.AddHeader "Content-Length", strFileSize
  59. Response.Charset = "UTF-8" ' 客户端浏览器的字符集UTF-8
  60. Response.ContentType = ContentType
  61. Response.BinaryWrite objStream.Read
  62. Response.Flush
  63. objStream.Close
  64. Set objStream = Nothing
  65. %>

  66. 3.提升ASP页面的响应速率  在你的ASP页面的第一行加入:
  67. <% ENABLESESSIONSTATE = False %>  这会关闭session对象,提升你的服务器响应速率,比较常见的问题是一个html页面包含了两个框架页面(至少有一个是ASP页面,并使用了session),这将使得必须等待某一个框架页(当然这个框
  68. 架页中使用了session)加载完后,另一个框架页面才会显示。
  69. 如果你使用代理访问, 默认情况下,许多代理服务器不会动态缓存ASP页面内容,加入下面的代码:
  70. <%
  71. Response.CacheControl = "Public"
  72. %>  这行代码会将ASP页面缓存在代理服务器上,从而加快客户端请求动态页面的响应速率,一些不经常变化的ASP页面将直接从代理服务器上取得。
  73. 4. 要知道浏览器(IE为例)不会解析回车和换行字符,如果你用Response.write方法写一行包含了回车和换行字符的字符串到动态页面中,其结果可想而知,你需要做的是:
  74. <%
  75. Response.Write(Replace(body, vbCrLf,"
  76. "))
  77. %>  用
  78. 来代替回车和换行。注意:如果回车和换行字符出现在form中的input/textarea等控件中,可以不必这么做。
  79. 5. 用ASP代码写IIS日志
  80. <%
  81.     Response.AppendToLog "数据库正在被访问"
  82. %>  执行这段代码后,在你的IIS日志中可能会出现下面的字符串:
  83. 127.0.0.1, -, 01/01/00, 12:00:34, W3SVC1,WEBSERVER,
  84. 127.0.0.1, 161342, 485, 228, 200, 0, get, /somefile.asp, 数据库正在被访问  注意:由于日志文件中的内容是按逗号分隔,所以写入的日志内容应避免使用逗号。
  85. 6. 如何访问远程计算机上MDB数据库文件
  86. 如果你用ODBC连接(DSN方式或其它方式)到远程计算机的MDB文件,这将产生一个错误:
  87. Microsoft OLE DB Provider for ODBC Drivers error '80004005' 大致意思是该文件可能被其他用户访问或无足够的权限访问。
  88. 下面有两种方式,避免这个错误:
  89.   方式a. 使用DAO引擎访问
  90.   Dim File, Conn, RS
  91. Const ReadOnly = False
  92. File = "\\server\share\file.mdb"
  93. Set Conn = CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(File,,ReadOnly)
  94. Set RS = Conn.OpenRecordset(SQL)  方式b. ADO + Jet OLE DB provider方式
  95.   Dim Conn, RS
  96. Set Conn = CreateObject("ADODB.Connection")
  97. Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
  98. Conn.Open "\\server\share\file.mdb"
  99. Set RS = Conn.Execute(SQL)    确定在运行ASP页面时有足够的访问权限以访问远程计算机上的MDB文件,在访问MDB文件前需要先登录到远程计算机,添加下面的代码
  100.   Set UM = CreateObject("UserManager.Server")
  101.   UM.LogonUser "帐号", "口令", "域"
  102.   ...
  103.   open database
  104.   ...
  105.   UM.RevertToSelf
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注-册

本版积分规则

Archiver|手机版|小黑屋|DoDVip ( 桂ICP备14000730号 )

GMT+8, 2025-5-1 18:18 , Processed in 0.058226 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表