asp实现jpg、txt、html文件直接下载
今天有网友向我求助,希望解决在asp实现jpg、txt、html文件直接下载的难题,同时希望有详细的asp代码。我们都清楚,如果在网页中下载jpg格式文件会通过IE自动打开的,无法实现点击下载jpg文件,txt、html、asp等文件也是一样IE会自动打开,如何在asp实现jpg、txt、html文件直接下载呢,这个代码又怎么写呢,下面是从学无忧转载过来的几种程序代码及使用方法:
一、程序代码
asp文件直接下载代码一:
如果你只需要实现下载jpg、txt、html文件,可以采用这种简单的代码,代码如下:
<%
url=request("filename")
Response.AddHeader "content-type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment;filename=" & url
Response.End()
%>
asp文件直接下载代码二:
如果你要实现不但可以下载jpg、txt、html格式文件,同时还希望能够直接下载asp、php等格式文件下载,那么可以用下面的代码来实现,代码如下:
<%
Const ForReading=1
Const TristateTrue=-1
Const FILE_TRANSFER_SIZE=16384
Response.Buffer = True
Function TransferFile(path, mimeType, filename)
Dim objFileSystem, objFile, objStream
Dim char
Dim sent
send=0
TransferFile = True
Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.GetFile(Path)
Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)
Response.AddHeader "content-type", mimeType
response.AddHeader "Content-Disposition","attachment;filename=" & filename
Response.AddHeader "content-length", objFile.Size
Do While Not objStream.AtEndOfStream
char = objStream.Read(1)
Response.BinaryWrite(char)
sent = sent + 1
If (sent MOD FILE_TRANSFER_SIZE) = 0 Then
Response.Flush
If Not Response.IsClientConnected Then
TransferFile = False
Exit Do
End If
End If
Loop
Response.Flush
If Not Response.IsClientConnected Then TransferFile = False
objStream.Close
Set objStream = Nothing
Set objFileSystem = Nothing
End Function
Dim path, mimeType, sucess,downfilename
downfilename=request("filename")
path = Server.MapPath(downfilename)
mimeType="text/plain"
sucess = TransferFile(path, mimeType,downfilename)
Response.End
%>
asp文件直接下载代码三:
以下程序代码同样可以下载任何文件格式,包含jpg、html、asp、php等,代码如下:
<%
function download(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
End function
dim filename
filename=request("filename")
call download(server.MapPath(filename),filename)
%>
二、代码使用方法:
①把下面的代码复制保存为【download.asp】
②然后在下载链接中输入【http://www.xue51.com/download.asp?filename=demo.jpg】
当然www.xue51.com要换成你的域名了,demo.jpg就是要下载的jpg文件名。
③文件名必须和download.asp在同一目录
以上就是有关asp实现jpg、txt、html文件直接下载代码的内容,希望对你有所帮助。