仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 498|回复: 7
打印 上一主题 下一主题

[学习教程] ASP编程:asp中自界说文件下载

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:47:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。下载能够用流下载(耗内存,罕用)或间接转到该文件.
<%
ConstUSE_STREAM=00.不必流(Adodb.Stream)下载1.用流下载
ConstALLOW_FILE_EXT="rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp"同意下载的文件的扩大名,避免源代码被下载
DimsDownFilePath下载文件路径
sDownFilePath=Trim(Request("FilePath"))
大概依据传过去的文件ID从数据库中猎取文件路径
假如sDownFilePath为相对路径,必定要将sDownFilePath转换为绝对本文件的绝对路径
sDownFilePath="focus.swf"
CallDownloadFile(sDownFilePath)
FunctionDownloadFile(s_DownFilePath)
判别有没传送文件名
IfIsNull(s_DownFilePath)=TrueOrTrim(s_DownFilePath)=""Then
OutputErr"毛病:先断定要下载的文件,下载失利"
EndIf
判别扩大名是不是正当
Dims_FileExt
s_FileExt=Mid(s_DownFilePath,InstrRev(s_DownFilePath,".")+1)
IfInStr(","&ALLOW_FILE_EXT&",",","&s_FileExt&",")<=0Then
OutputErr"毛病:文件范例("&s_FileExt&")不同意被下载,下载失利"
EndIf

s_DownFilePath=Replace(s_DownFilePath,"","/")
为了平安,某些目次克制下载文件,在这里处置


检测服务器是不是撑持fso
Dimo_Fso
OnErrorResumeNext
Seto_Fso=Server.CreateObject("Scripting.FileSystemObject")
IfErr.Number0Then
Err.Clear
OutputErr"毛病:服务器不撑持fso组件,下载失利"
EndIf
获得文件名,文件巨细
Dims_FileMapPath
Dimo_File,s_FileName,n_FileLength
s_FileMapPath=Server.MapPath(s_DownFilePath)
If(o_Fso.FileExists(s_FileMapPath))=TrueThen
Seto_File=o_Fso.GetFile(s_FileMapPath)
s_FileName=o_File.Name
n_FileLength=o_File.Size
o_File.Close
Else
OutputErr"毛病:文件不存在,下载失利"
EndIf
Seto_Fso=Nothing
判别是不是下载的文件巨细凌驾限定


假如不是用流下载,间接转到该文件
IfUSE_STREAM=0Then
Response.RedirectsDownFilePath
Response.end
EndIf
检测服务器是不是撑持Adodb.Stream
OnErrorResumeNext
Seto_Stream=Server.CreateObject("Adodb.Stream")
IfErr.Number0Then
Err.Clear
OutputErr"毛病:服务器不撑持Adodb.Stream组件,下载失利"
EndIf
o_Stream.Tyep=1
o_Stream.Open
o_Stream.LoadFromFiles_FileMapPath
Response.Buffer=True
Response.Clear
Response.AddHeader"Content-Disposition","attachment;filename="&s_FileName
Response.AddHeader"Content-Length",n_FileLength
Response.CharSet="UTF-8"
Response.ContentType="application/octet-stream"
Response.BinaryWriteo_Stream.Read
Response.Flush
o_Stream.Close
Seto_Stream=Nothing
EndFunction
SubOutputErr(s_ErrMsg)
Response.Write"<fontcolor=red>"&s_ErrMsg&"</font>"
Response.End
EndSub
%>
http://www.ckuyun.com/jiny-z/archive/2006/08/29/489102.html
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 23:40:15 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-28 08:15:49 来自手机 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
只想知道 该用户已被删除
地板
发表于 2015-2-12 04:37:51 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
小妖女 该用户已被删除
5#
发表于 2015-3-2 22:21:12 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
若相依 该用户已被删除
6#
发表于 2015-3-11 06:59:04 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-17 23:07:06 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
8#
 楼主| 发表于 2015-3-25 05:32:42 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-29 07:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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