2014-09-12 4 views
2

Я пытаюсь загрузить файл Excel (сохраненный на сервере) нажатием кнопки. Когда событие происходит скачивает пустой первенствует файл вместо «WORK.xls»Загрузить файл excel classic 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

Что проблема у вас возникли? –

+0

загружается пустой файл excel вместо сохраненного файла на сервере «WORK.xls» – Sash

ответ

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