经典的ASP应用

2019-09-30 06:45:13来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

相信很多小伙伴们对于ASP应用的了解都不是非常清楚的,那么今天今天爱站小编为大家分享经典的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

本文中主要介绍的就是经典的ASP应用,有何经验欢迎您来爱站技术频道与小编分享,也可以在留言给小编,写出您对ASP的心得体会。


原文链接:https://js.aizhan.com/develop/asp/9199.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何禁用FileSystemObject组件

下一篇:ASP管理NT帐号