asp

位置:IT落伍者 >> asp >> 浏览文章

温故知新:几个经典的ASP应用


发布日期:2023年01月10日
 
温故知新:几个经典的ASP应用
下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的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

上一篇:ASP中一个用VBScript写的随机数类

下一篇:ASPX页Web服务调用性能优化