asp下载问题:怎样把服务器端的TXT文档下载,并不在IE中打开!
我现在有段程序要求把一些数据写入到一个TXT文件中,并且即时下载。
但是我如果把地址直接链接到文件名就会在IE中打开,看了一些下载源码觉得太复杂,各位朋友
能不能给些的思路!
虚心请教,感谢大伙!
问题点数:100、回复次数:5Top
1 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-15 11:45:31 得分 0
用stream方式读取txt,让浏览器强制下载Top
2 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-15 11:49:44 得分 50
<%
'蚍蜉中文站提供本程序http://www.pifoo.com
'程序编写飞云(Jspadmin)
'你可以自由引用或转载,但请保留此信息或连接
'本程序的作用是直接下载文件而不是在IE中打开,如htm、txt、asp、jpg文件等
function download(f,n)
'f文件全路径,n下载文件的文件名
on error resume next
Set S=CreateObject("Adodb.Stream")
S.Mode=3
S.Type=1
S.Open
S.LoadFromFile(f)
if Err.Number>0 then
Reaponse.status="404"
else
Response.ContentType="application/octet-stream"
Response.AddHeader "Content-Disposition:","Attachment;filename="&n
Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)
if Range="" then
Response.BinaryWrite(S.Read)
else
S.Postion=Clng(Split(Range,"-")(0))
Response.BinaryWrite(S.Read)
end if
end if
Response.end
end function
dim filename
'filename="index.htm"
filename="1.xls" '设置文件名在这里,你可以写上绝对路径。如果用了绝对路径,下面就不要再用mappath了
call download(server.MapPath(filename),filename)
%>
Top
3 楼iuhxq(小灰)回复于 2006-03-15 12:05:36 得分 0
用stream方式读取txt,让浏览器强制下载
搜索一下,代码好多的。拿过来了用就行了Top
4 楼znjgress(四空和尚)回复于 2006-03-15 13:09:32 得分 50
<%
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名."
Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "受保护文件,不能下载."
Response.End
End Select
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & FileName
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
Top
5 楼syx2006(悟空)回复于 2006-03-15 15:04:14 得分 0
非常感谢楼上两为朋友帮助!Top




