【问题标题】:Downloading binary file using WinHttp.WinHttpRequest.5.1 - content is binary gibberish使用 WinHttp.WinHttpRequest.5.1 下载二进制文件 - 内容是二进制乱码
【发布时间】:2015-06-16 14:47:28
【问题描述】:

我正在尝试下载 MS Excel 文件(二进制)。我什至得到了正确的响应标头(请参阅附加的两个图像(httpfox 和 vbscript))。尝试使用以下函数保存objWinHttp.ResponseBody 时(在许多提到下载二进制文件的帖子中都可以找到):

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

【问题讨论】:

  • 您的 XLS 文件是“gibrished”,我只是使用您的 Dropbox 链接正常下载它。只是使用十六进制编辑器查看它,它似乎不是一个有效的 Excel 文件。

标签: file vbscript download binary winhttp


【解决方案1】:

您的代码本质上没有任何问题。正如@Bond 已经指出的那样,您的文件不是 Excel 工作簿。这是一个 gzip 压缩的 HTML 页面。将其保存为mySrsExport.htm.gz,您将能够使用gunzip7-Zip 或其他一些(非)打包程序提取HTML 文件。

【讨论】:

  • 非常感谢你们两个 - 你让我的一天更美好仍然没有足够的声誉来投票 - 然而,这是正确的答案。! : - )
猜你喜欢
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2013-08-30
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多