2015-06-16 126 views
0

我试图下载MS Excel文件(二进制)。我甚至可以得到正确的响应头文件(请参阅附加的两个图像(httpfox和vbscript))。当尝试使用下面的函数保存objWinHttp.ResponseBody(在很多帖子提到下载二进制文件中找到):使用WinHttp.WinHttpRequest.5.1下载二进制文件 - 内容是二进制乱码

Function SaveBinaryData (FileName, ByteArray) 
    adTypeBinary = 1 
    adSaveCreateOverWrite = 2 

    SET BinaryStream = CreateObject("ADODB.Stream") 

    BinaryStream.Type = adTypeBinary 

    BinaryStream.Open 
    BinaryStream.Write(ByteArray) 

    BinaryStream.SaveToFile FileName, adSaveCreateOverWrite 
    BinaryStream = 0 
    'BinaryStream.Close 
    'Return SaveBinaryData 
End Function 

文件被保存为二进制内容乱码。

这里的Excel文件,如果有人想看到的内容的样子:https://dl.dropboxusercontent.com/u/17845471/mySrsExport.xls

+2

您的XLS文件对于我来说只是使用Dropbox链接正常下载它的“gibrished”。只需使用十六进制编辑器查看它,它看起来不是一个有效的Excel文件。 – Bond

回答

1

没有什么内在的错误代码。 @Bond已经指出,您的文件不是Excel工作簿。这是一个gzip压缩的HTML页面。将其保存为mySrsExport.htm.gz,您将能够使用gunzip7-Zip或其他某个(联合)打包器来提取HTML文件。

+0

非常感谢你们两位 - 你让我的一天更加美好,但没有足够的声望投票 - 但是,这是正确的答案。 : - ) –