愤怒的大鸟 发表于 2015-1-16 22:45:35

ASP网站制作之用stream间接下载文件

asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!stream|下载在扫瞄器的地点栏里间接输出一个doc或xls或jpg的文件的url路径,那末该文件会间接显现在扫瞄器里。而在良多时分我们但愿能间接弹出下载提醒框让用户下载,我们该怎样办呢?这里有两种办法:
1、设置你的服务器的iis,给doc等后缀名做映照
2、在向客户端发送时设置其contenttype

上面具体申明办法2

<%
Response.Buffer=true
Response.Clear

dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
*********************************************挪用时传进的下载文件名
Dname=trim(request("n"))
******************************************************************
IfDname""Then
******************************下载文件寄存的服务端目次
url=server.MapPath("/")&""&Dname
***************************************************
EndIf

Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
%>
<%
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl

SelectCaselcase(Right(flName,4))
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".txt"
ContentType="text/plain"
CaseElse
ContentType="application/octet-stream"
EndSelect



Response.AddHeader"Content-Disposition","attachment;filename="&flName
Response.AddHeader"Content-Length",flsize

Response.Charset="UTF-8"
Response.ContentType=ContentType

Response.BinaryWriteobjStream.Read
Response.Flush
response.Clear()
objStream.Close
SetobjStream=Nothing

%>

将上面的器材存成download.asp然后你就能够用<aherf=http://xxx.xxx.com/download.asp?n=file.doc>download!</a>来下载统一目次下的file.doc了!

可是这里有个成绩就是间接将file.doc路径写在url里是不平安的,以是办理计划应当是将file.doc的路径存到数据库里,同过查找数据库后失掉路径

在这个程序的最后面假如加上一个判别:

ifinstr(Request.ServerVariables("HTTP_REFERER"),"http://你的域名")=0then
Response.End
endif

就可以够很好的避免他人的盗链了
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

不帅 发表于 2015-1-19 22:56:25

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

仓酷云 发表于 2015-1-28 05:17:47

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

海妖 发表于 2015-2-5 11:43:48

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

简单生活 发表于 2015-2-11 15:18:53

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

谁可相欹 发表于 2015-3-2 14:32:32

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

若相依 发表于 2015-3-11 04:09:46

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

蒙在股里 发表于 2015-3-17 20:10:35

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

柔情似水 发表于 2015-3-24 23:44:48

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
页: [1]
查看完整版本: ASP网站制作之用stream间接下载文件