发新话题
打印

直接下栽WORD文件

直接下栽WORD文件

我在网页上有一个连接。连接的内容是*.doc  ,我想实现的是在用鼠标(左击)点击时出现另存窗口,而不是直接打开该文件

TOP

你写一个DL.asp文件,这个文件源码如下:  
********************  
dl.asp  
********************  
<%  
Response.Buffer  =  true  
Response.Clear              

'获取要下载的文件在服务器上的绝对位置  
dlfile=trim(request("dlfile"))  
   If  dlfile<>""  Then  
   fileurl=server.MapPath(dlfile)  
   Else  
   Response.end  
   End  If  

'创建Myfso,使用FSO组件  
   Set  Myfso=Server.CreateObject("Scripting.FileSystemObject")  
   Set  f=Myfso.getfile(fileurl)  '定义FSO对象f  
       fsize=f.size  '文件大小  
       fName=f.name  '文件名字  
   Set  f=Nothing    '释放f  
   Set  Myfso=Nothing  '释放MyFso  

'使用Adodb.Stream组件  
Set  MyStream  =  Server.CreateObject("ADODB.Stream")  
MyStream.Open  
MyStream.Type  =  1  
MyStream.LoadFromFile  fileurl  

'读取文件类型,让系统识别,以存为不同类型的文件。  
Select  Case  lcase(Right(fName,  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  ".asp"  
           ContentType  =  "text/html"  
   Case  ".txt"  
           ContentType  =  "text/plain"  
   Case  Else  
           ContentType  =  "application/octet-stream"  
   End  Select  

'下载  
Response.AddHeader  "Content-Disposition",  "attachment;  filename="  &  fName  
Response.AddHeader  "Content-Length",  fsize  
Response.Charset  =  "UTF-8"  
Response.ContentType  =  ContentType  
Response.BinaryWrite  MyStream.Read  
Response.Flush  

'释放MyStream  
MyStream.Close  
Set  MyStream  =  Nothing  
%>

TOP

然后你在要实现的页面中这样调用:  

<a  href="dl.asp?dlfile=dl.doc">dl.doc</a>

TOP

发新话题