强势推出:ASP动态网页中常用的6个程序段
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")%>
即直接提示用户下载而不是由浏览器打开某些文件。注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和javascript客户端的代码。
- <%
- '--------------------------------------------
- Response.Buffer = True
- Dim strFilePath, strFileSize, strFileName
- Const adTypeBinary = 1
- strFilePath = "文件路径 "
- strFileSize = ... 文件大小,可选
- strFileName = "文件名"
- Response.Clear
- '8*******************************************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&n
bsp;objStream.Read li> - Response.Flush
- objStream.Close
- Set objStream = Nothing
- %>
在你的ASP页面的第一行加入:
这会关闭session对象,提升你的服务器响应速率,比较常见的问题是一个html页面包含了两个框架页面(至少有一个是ASP页面,并使用了session),这将使得必须等待某一个框架页(当然这个框
架页中使用了session)加载完后,另一个框架页面才会显示。
Response.CacheControl = "Public"
%>
这行代码会将ASP页面缓存在代理服务器上,从而加快客户端请求动态页面的响应速率,一些不经常变化的ASP页面将直接从代理服务器上取得。
Response.Write(Replace(body, vbCrLf,"<br>"))
%>
用<br>来代替回车和换行。注意:如果回车和换行字符出现在form中的input/textarea等控件中,可以不必这么做。
Response.AppendToLog "数据库正在被访问"
%>
执行这段代码后,在你的IIS日志中可能会出现下面的字符串:
127.0.0.1, 161342, 485, 228, 200, 0, get, /somefile.asp, 数据库正在被访问
注意:由于日志文件中的内容是按逗号分隔,所以写入的日志内容应避免使用逗号。
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 大致意思是该文件可能被其他用户访问或无足够的权限访问。
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方式
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文件前需要先登录到远程计算机,添加下面的代码
UM.LogonUser "帐号", "口令", "域"
...
open database
...
UM.RevertToSelf