2014-09-12 86 views
2

我想下载一个excel文件(保存在服务器上)点击按钮。当事件引发它下载一个空白Excel文件,而不是 “WORK.xls”下载一个excel文件经典asp

<% 
    strFile = "WORK.xls" 

    Response.ContentType = "application/octet-stream" 
    Response.AddHeader "Content-Disposition", "attachment; filename=" & strFile 

    set app = Server.CreateObject("ADODB.Stream") 
    app.open 
    app.type = adTypeBinary 
    app.LoadFromFile(Server.MapPath("WORK.xls")) 

    response.binarywrite app.Read 

    app.close 

    Set app = nothing 

%> 
+0

什么问题你有? – 2014-09-12 22:38:55

+0

一个空白的Excel文件被下载,而不是保存在服务器上的文件“WORK.xls” – Sash 2014-09-12 22:39:43

回答

1

试试这个:

DownloadFile "WORK.xls" 

Private Sub DownloadFile(file) 
    '--declare variables 
    Dim strAbsFile 
    Dim strFileExtension 
    Dim objFSO 
    Dim objFile 
    Dim objStream 
    '-- set absolute file location 
    strAbsFile = Server.MapPath(file) 
    '-- create FSO object to check if file exists and get properties 
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
    '-- check to see if the file exists 
    If objFSO.FileExists(strAbsFile) Then 
     Set objFile = objFSO.GetFile(strAbsFile) 
     '-- first clear the response, and then set the appropriate headers 
     Response.Clear 
     '-- the filename you give it will be the one that is shown 
     ' to the users by default when they save 
     Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name 
     Response.AddHeader "Content-Length", objFile.Size 
     Response.ContentType = "application/octet-stream" 
     Set objStream = Server.CreateObject("ADODB.Stream") 
     objStream.Open 
     '-- set as binary 
     objStream.Type = 1 
     Response.CharSet = "UTF-8" 
     '-- load into the stream the file 
     objStream.LoadFromFile(strAbsFile) 
     '-- send the stream in the response 
     Response.BinaryWrite(objStream.Read) 
     objStream.Close 
     Set objStream = Nothing 
     Set objFile = Nothing 
    Else 'objFSO.FileExists(strAbsFile) 
     Response.Clear 
     Response.Write("No such file exists.") 
    End If 
    Set objFSO = Nothing 
End Sub 

链接:http://www.evagoras.com/2011/02/08/downloading-any-file-using-asp-fso-and-the-adodb-stream-object/

+1

谢谢你的工作! – Sash 2014-09-12 22:55:02